在Sencha Touch2.0中,可以定义不同模型之间的关联关系。例如,在开发博客网站的时候,可以首先定义用户(User)模型,然后为用户定义文章(Article)模型。一个用户可以发表多篇文章,因此可在用户模型与文章模型之间建立一对多的关联关系,在文章模型与用户模型之间建立多对一的关联关系。一篇文章可以拥有多个读者所发表的多篇评论,因此定义评论模型,并且在文章与评论模型之间建立一对多的关联关系。一个用户可以在网站中发表多篇评论,因此可在用户模型与评论模型之间建立一对多的关联关系。这3个模型的定义方法如下:

<span style="font-size:14px;">
//定义用户模型
Ext.define('User',{
extend: 'Ext.data.Model',
config: {
fields: ['id'],
hasMany: [
//在用户模型与文章模型之间建立一对多的关联关系
{model: 'Article', name: 'articles'},
//在用户模型与评论模型之间建立一对多的关联关系
{model: 'Comment', name: 'comments'}
]
}
}); </span>

<span style="font-size:14px;">
//定义文章模型
Ext.define('Article',{
extend: 'Ext.data.Model',
config: {
fields: ['id', 'user_id'],
//在文章模型与用户模型之间建立多对一的关联关系
belongsTo: 'User',
//在文章模型与评论模型之间建立一对多的关联关系
hasMany: {model: 'Comment', name: 'comments'}
}
}); </span>

<span style="font-size:14px;">
//定义评论模型
Ext.define('Comment',{
extend: 'Ext.data.Model',
config: {
fields: ['id', 'user_id', 'article_id']
}
}); </span>

在Sencha Touch2.0中,使用如下3个类定义模型之间的关系
1)Ext.data.association.HasMany类:定义两个模型之间的一对多的关系。例如在上面这段代码示例中,因为一个用户可以发表多篇文章,所以在定义用户模型的时候,使用hasMany配置选项来指定文章模型。

2)Ext.data.association.BelongsTo类:定义两个模型之间的多对一的关系。例如在上面这段代码示例中,因为一个用户可以发表多篇文章,所以在定义文章模型的时候,使用BelongsTo配置选项来指定用户模型。

3)Ext.data.association.HasOne类:定义两个模型之间的一对一关系。

关注公众号,分享干货,讨论技术

Sencha Touch2 -- 11.1:定义具有关联关系的模型的更多相关文章

  1. 【翻译】Sencha Touch2.4 The Layout System 布局

    [翻译]The Layout System 布局 In Sencha Touch there are two basic building blocks: componentsand containe ...

  2. Sencha Touch2 工作笔记

    Sencha Touch2 工作笔记 Ext.dataview.List activate( this, newActiveItem, oldActiveItem, eOpts ) Fires whe ...

  3. 【概率论】1-1:概率定义(Definition of Probability)

    title: [概率论]1-1:概率定义(Definition of Probability) categories: Mathematic Probability keywords: Sample ...

  4. c++11 用户定义字面量

    c++11 用户定义字面量 #define _CRT_SECURE_NO_WARNINGS #include <iostream> #include <string> #inc ...

  5. Sencha Touch2 时间轴ListPanel

    直接贴代码 timeline.html <!DOCTYPE html> <html> <head> <meta charset="UTF-8&quo ...

  6. sencha touch2 动画问题

    最近在review一个项目的代码, 发现返回操作比较乱,很多"从哪里来,到哪里去的操作"被写的一塌糊涂; 按照ios系统的进场出场动画(人家的体验还是很好的,必须借鉴)为标准,使用 ...

  7. Cordova3+sencha touch2.x 环境搭建

    1.安装 nodejs 2.安装 cordova: npm install -g cordova 3.创建一个工程: cordova create MyApp com.example.MyApp My ...

  8. 11.css定义下拉菜单

    注意点: 1.设置a标签的width 和 height 的时候,直接设置是没用的,可以以这样两种方式设置 (1). display:block; (2). float:left; 2.设置下拉菜单,最 ...

  9. scala学习手记11 - 类定义

    这里会通过与Java比较的方式来说明scala是如何创建类的. 先来看一下Java中是如何定义一个类的: public class Car { private final int year; priv ...

随机推荐

  1. Scala继承

    override重写 为什么要用override关键字?因为这样更清楚,不容易出错,比如打错字了,就没覆盖成功,但是不会报错 override可以覆盖feild和method class Person ...

  2. java加密用到了BASE64Decoder时报错信息:Access restriction: The type BASE64Encoder is not accessible due to restrict

    在Eclipse中编写Java代码时,用到了BASE64Decoder,import sun.misc.BASE64Decoder;可是Eclipse提示: Access restriction : ...

  3. Git 查看远程分支、本地分支、删除本地分支及远程分支

    1. 删除本地分支: git branch -d branchName 2. 删除远程分支: // 方法一:将删除的本地分支推到远程(要删除的远程分支在本地有映射) git push origin : ...

  4. netty源码分析系列文章

    netty源码分析系列文章 nettynetty源码阅读netty源码分析  想在年终之际将对netty研究的笔记记录下来,先看netty3,然后有时间了再写netty4的,希望对大家有所帮助,这个是 ...

  5. CS229 1

    1.机器学习 机器学习是工具,具体应用到某个实际场景下,才是目的. 2.分类 a 监督学习,包括回归(regression),分类(classification).回归问题,数据可以是连续或者离散,分 ...

  6. Qt Charts_Audio实践

    这里完全是照搬帮助文档中的代码生成的程序 上预览图 工程文件代码 #------------------------------------------------- # # Project crea ...

  7. 《python机器学习—预测分析核心算法》:构建预测模型的一般流程

    参见原书1.5节 构建预测模型的一般流程 问题的日常语言表述->问题的数学语言重述重述问题.提取特征.训练算法.评估算法 熟悉不同算法的输入数据结构:1.提取或组合预测所需的特征2.设定训练目标 ...

  8. ardupilot_gazebo仿真(四)

    ardupilot_gazebo仿真(四) 标签(空格分隔): 未分类 Multi-MAV simulation 参考官网给出的multi-vehicle-simulation的方法 在每次打开sim ...

  9. winform 根据两点求出线上所有点及画出这条线

    找出所有点: 根据斜率按照一个方向递增,求出对应的另一个方向的整数值. Point pStart = new Point(0, 2); Point pEnd = new Point(8, 2); // ...

  10. Xampp+Openfire+Spark的简单使用

    Openfire与Spark的简单实用 1.安装Openfire 百度云 提取码:uu11 2.查找路径 /usr/local/openfire 这时候需要将openfire的文件属性都设置为 可读可 ...