Sencha Touch2 -- 11.1:定义具有关联关系的模型
在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:定义具有关联关系的模型的更多相关文章
- 【翻译】Sencha Touch2.4 The Layout System 布局
[翻译]The Layout System 布局 In Sencha Touch there are two basic building blocks: componentsand containe ...
- Sencha Touch2 工作笔记
Sencha Touch2 工作笔记 Ext.dataview.List activate( this, newActiveItem, oldActiveItem, eOpts ) Fires whe ...
- 【概率论】1-1:概率定义(Definition of Probability)
title: [概率论]1-1:概率定义(Definition of Probability) categories: Mathematic Probability keywords: Sample ...
- c++11 用户定义字面量
c++11 用户定义字面量 #define _CRT_SECURE_NO_WARNINGS #include <iostream> #include <string> #inc ...
- Sencha Touch2 时间轴ListPanel
直接贴代码 timeline.html <!DOCTYPE html> <html> <head> <meta charset="UTF-8&quo ...
- sencha touch2 动画问题
最近在review一个项目的代码, 发现返回操作比较乱,很多"从哪里来,到哪里去的操作"被写的一塌糊涂; 按照ios系统的进场出场动画(人家的体验还是很好的,必须借鉴)为标准,使用 ...
- Cordova3+sencha touch2.x 环境搭建
1.安装 nodejs 2.安装 cordova: npm install -g cordova 3.创建一个工程: cordova create MyApp com.example.MyApp My ...
- 11.css定义下拉菜单
注意点: 1.设置a标签的width 和 height 的时候,直接设置是没用的,可以以这样两种方式设置 (1). display:block; (2). float:left; 2.设置下拉菜单,最 ...
- scala学习手记11 - 类定义
这里会通过与Java比较的方式来说明scala是如何创建类的. 先来看一下Java中是如何定义一个类的: public class Car { private final int year; priv ...
随机推荐
- [bzoj1359][Baltic2009]Candy
给定N个数对$(T_i,S_i)$,表示时刻$S_i$时在位置$T_i$处出现一粒糖果.有一些机器人可供使用,每个机器人可花费一单位时间向相邻位置移动.要求用最少的机器人接到全部糖果.时刻0时机器人位 ...
- 初探 Qt Opengl【2】
最近在研究QOPengl QGraphicsView QGraphicsItemQGraphicsScene不过也只是皮毛,也不是做什么技术贴,就是记录一下自己在其中遇到的问题,和自己新学到的东西. ...
- 从底层带你理解Python中的一些内部机制
下面博文将带你创建一个字节码级别的追踪API以追踪Python的一些内部机制,比如类似YIELDVALUE.YIELDFROM操作码的实现,推式构造列表(List Comprehensions).生成 ...
- Python全栈 MongoDB 数据库(概念、安装、创建数据)
什么是关系型数据库? 是建立在关系数据库模型基础上的数据库,借助于集合代数等概念和方法来处理数据库中的数据, 同时也是一个被组织成一组拥有正式描述性的表格( ...
- 九度OJ--Q1167
import java.util.Scanner;import java.util.TreeSet; /* * 题目描述: * 输入一个数组的值,求出各个值从小到大排序后的次序. * 输入: * 输入 ...
- 学习bash——变量
一.什么是变量 变量:一个字眼,用来替代另一个比较复杂或者是容易变动的数据. 变量的优势:可变性.方便性 二.变量内容的设置 关键词:变量,变量名称,变量的内容(我默认将变量与变量名称等价) 方法:变 ...
- 并查集——poj1182(带权并查集高阶)
题目链接:食物链 题解:点击 说一声:这题关系推导值得学习.
- 简明Python3教程 1.介绍
Python是少有的几种既强大又简单的编程语言.你将惊喜地发现通过使用Python即可轻松专注于解决问题而非和你所用的语言格式与结构. 下面是Python的官方介绍: Python is an eas ...
- 总结const
int b; const int *a=&b; int const * a=&b; int * const a =&b; const int *const a=&b; ...
- Mybatis学习系列(四)Mapper接口动态代理
实现原理及规范 Mapper接口动态代理的方式需要手动编写Mapper接口,Mybatis框架将根据接口定义创建接口的动态代理对象,代理对象的方法体实现Mapper接口中定义的方法. 使用Mapper ...