我尝试使用 ExtJS 显示同一模型的不同视图(每个视图显示模型的一个子集)。
我有一个加载以下 xml 的嵌套模型:
<results>
<hitcount>1234</hitcount>
<recommended>
<title>foo</title>
</recommended>
<result>
<title>title1</title>
<author>author1</author>
</result>
<result>
<title>title2</title>
<author>author2</author>
</result>
</results>
我想要不同的小部件,每个小部件都显示这个模型的一部分(一个显示“结果”的列表,另一个显示“推荐”的列表,另一个显示命中计数的小部件)。
我不知道的是如何在每个小部件上声明商店以仅针对完整模型的一个子集。
听起来像是一种基本方法,但我找不到这样的示例(我发现了许多嵌套结构的示例,但没有一个在模型子集上具有存储范围的示例)。
请参阅下面的一些尝试,我尝试仅获得结果部分。
Ext.define("MySenchaApp.model.ResultModel", {
extend:"Ext.data.Model",
config:{
associations: [
{
type:'hasMany',
model:'MySenchaApp.model.Result',
name:'results',
associationKey:'result'
}
],
proxy:{
type:"ajax",
url:'Results.xml',
reader:{
type:'xml',
rootProperty:'results'
}
}
}
});
Ext.define("MySenchaApp.model.Result", {
extend:"Ext.data.Model",
config:{
fields:['title', 'author'],
belongsTo: 'MySenchaApp.model.ResultModel'
}
});
Ext.define('MySenchaApp.view.Results', {
extend:'Ext.navigation.View',
xtype:'blog',
config:{
title:'Results',
items: [
{
xtype:'list',
itemTpl:'<b>{title}</b> - by <i>{author}</i>',
store:{
autoLoad:true,
model:'MySenchaApp.model.Result' // ??
}
}
]
}
});