ExtJS 4.1-检索嵌套JSON的hasOne信息
ExtJS 4.1 - Retrieve hasOne information for Nested JSON
我正在尝试检索Model和包含hasOne关联的关联模型的信息。我参考了以下Sencha文档页面(http://docs.sencha.com/ext-js/4-1/#/指南/数据)。我目前有以下示例代码在工作:
var Mtd = Ext.ModelMgr.getModel('Mtd');
Mtd.load(4, {
success: function(mtd){
console.log("Loaded! " + mtd.get('id'));
mtd.getTreatmentdesign(function(treatment,operation){
console.log(treatment.get('id'));
}, this);
}
});
现在,当我调用mtd.getTreatmentdesign()时,我注意到有两个请求用于检索信息。第一个是检索我期望的Mtd信息,但它也请求检索Treatmentdesign信息。Mtd的响应包含Mtd信息以及治疗设计信息。所以我想通过一个请求来处理Mtd和Treatment设计信息。令我困惑的是,文件中说明了以下内容:
你可能想知道为什么我们向User.load调用传递了一个成功函数,但在访问用户的帖子和评论时却不必这样做。这是因为上面的例子假设,当我们请求获取用户时,服务器除了返回所有嵌套的帖子和评论外,还返回用户数据。通过像我们上面所做的那样设置关联,框架可以自动解析出单个请求中的嵌套数据。
那么,我如何在不需要再次请求的情况下检索相关信息呢?我只想使用单个请求中的所有json,而不是必须发出多个请求。
请确保将HasOne
关联上的associationKey配置设置为包含关联模型数据的属性。默认情况下,这是所有小写字母的关联模型类的名称。
例如,如果服务器以的形式返回Mtd
记录的数据
{
...
treatmentDesign: {
...
}
}
将CCD_ 3设置为CCD_。
下面是一个实际操作的示例:http://jsfiddle.net/HP6fq/3/
是的,associationKey适用于
Ext.define('User', {
extend:'Ext.data.Model',
fields: ['id', 'name', 'status'],
associations: [{ type: 'hasOne', model: 'Status', associationKey: 'status' }]
});
Ext.define('Status', {
extend:'Ext.data.Model',
fields: ['id', 'title'],
});
此处演示
相关文章:
- 访问布局信息是否也会导致浏览器重排
- 定义完全独立的样式信息
- 使用html2canvas获取基本信息
- JS表单提交"无法使用Chrome数据保护程序加载此页面.尝试重新加载页面.调试信息:POST CISmtuK
- 从信息框调用弹出图像库
- 如何在不传递此信息的情况下查找被调用的元素
- 将谷歌自动完成地址信息放在页面上,而不是表格中
- 如何通过解析类信息来使用jQuery创建类
- 包含数据库中相关信息的开放模态
- 单击按钮即可在浏览器的新选项卡中打开 Sapui5 详细信息页面
- 如何调整信息窗口的大小并点击按钮?+更改信息窗口的内容
- ng在更新$scope后重复不更新信息
- 谷歌地图点击潜水触发信息窗口
- 根据CHECKBOX输入值动态更新DIV信息
- 如何使用ember.js在操作中传递当前上下文中目标旁边的信息
- Jquery on单击“显示信息”
- 将FlowPlayer嵌入谷歌地图信息窗口
- AEM(cq5)使用组件内的信息
- 如何在完整日历中的当天点击时显示活动详细信息
- ExtJS 4.1-检索嵌套JSON的hasOne信息