0
我有一个卡片布局的视图(Panel
)。我有一个Store
,比如n
项。我想创建一堆n
卡,每个卡都由Store
中的一个项目支持。我怎么能做到这一点,而不需要在for
循环中手动添加n
卡片,迭代Store
中的项目?我可以用商店支持Sencha Touch Card布局吗?
任何帮助表示赞赏,谢谢。
-tjw
我有一个卡片布局的视图(Panel
)。我有一个Store
,比如n
项。我想创建一堆n
卡,每个卡都由Store
中的一个项目支持。我怎么能做到这一点,而不需要在for
循环中手动添加n
卡片,迭代Store
中的项目?我可以用商店支持Sencha Touch Card布局吗?
任何帮助表示赞赏,谢谢。
-tjw
你需要一个单独的列表,包含所有你的卡,你不能用一个商店(至少在目前的版本煎茶触摸的)连接的卡板的名单。
你无法避免手动添加,但你能避免循环:
Ext.regModel('someModel', {
fields: [
{name: 'title', type: 'string' },
{name: 'info', type: 'string' }
]
});
var someStore = new Ext.data.Store({
model: "someModel",
listeners:{
add:function(store, list, index){
//here list is list of records you added
var item = list[0];
panelinstance.insert(index, {...whatever component...panel,list,carousal whatever});
}
}
});
小心来电:每次您的商店(这可能听起来很可笑)添加一个项目,但我认为这是让您的面板“连接”到商店的唯一方法。
你不想使用'for'循环的任何特定原因? – dkamins 2012-03-16 04:06:16
当我已经拥有包含我需要的所有东西的'Store'时,我需要维护一个单独的列表。我希望能够过滤商店,以便在堆叠中只有特定的卡片。使用“Store”似乎更加优雅和习惯。 – 2012-03-16 04:09:01
这样做会有一点点工作。您将需要创建一个新的自定义组件来处理它。值得庆幸的是,ST 2.x中的Ext.data.Store组件具有重大事件,因此它应该只是聆听这些事件并在必要时替换现有组件。虽然这将很难优化。 – rdougan 2012-03-16 23:09:27