我无法使用sencha touch 2重绘嵌套列表。我的代码如下所示;
var data = {items:[{text:'hello', leaf:true}]};
Ext.application({
name:'main',
launch:function(){
Ext.define('ListItem', {
extend: 'Ext.data.Model',
config: {
fields: ['text']
}
});
var treeStore = Ext.create('Ext.data.TreeStore', {
id: 'mystore',
model: 'ListItem',
defaultRootProperty: 'items',
root: data});
Ext.create('Ext.NestedList', {
id:'mylist',
fullscreen: true,
store: treeStore
});
} // end launch:function()
}); // end Ext.application
在运行期间,我修改数据变量,如data.items[0].text = 'bye'
。如何让嵌套列表刷新并显示bye
?我尝试了以下但没有一个工作:
var mystore = Ext.data.StoreManager.lookup('mystore');
mystore.setRoot(data);
Ext.getCmp('mylist').refresh(); // refresh, update, dolayout, repaint etc... does not exist.
Ext.getCmp('mylist').bindstore(mystore); // bindstore is deprecated
答案 0 :(得分:2)
您应该通过记录/存储实例更改数据,然后Ext.NestedList将自动更新
var record = treeStore.getAt(0);
record.set('text', 'bye');
答案 1 :(得分:1)
使用getById()和getAt()来处理商店中的数据,这将返回实现NodeInterface的Models。通过appendChild添加数据,其余部分从那里自我解释。可以在数据中覆盖id值,以便更轻松地导航树。
getStore().getById('myFirstLevelId').getById('mySecondLevelId').getById('myThirdLevelId')
http://docs.sencha.com/touch/2-0/#!/api/Ext.data.NodeInterface