가끔은 몇 개의보기 (목록, 캐 러셀, 데이터보기)에 대해 하나의 저장소를 사용하고 데이터를 새로 고치면 (로드, 필터)이 저장소를 사용하는 모든보기의 DOM이 다시 작성되지만 일부보기는이 시간에 표시되지 않으며이 데이터에는 표시되지 않을 수 있습니다. 목록을 새로 고칠 때마다가 아니라 표시 할 경우에만 목록 DOM을 새로 고칠 수 있습니까? 저장소에있는 첫 번째 목록의 항목 탭이 새 항목을 추가됩니다 목록이 표시된 경우에만 목록을 업데이트하십시오.
Ext.define("Test.view.Main", {
extend: 'Ext.tab.Panel',
config: {
tabBarPosition: 'bottom',
items: [ ]
},
constructor : function(){
this.callParent(arguments);
var store = Ext.create('Ext.data.Store',{
data :[
{title : 'One'},
{title : 'Two'},
{title : 'Three'}
]
}),
firstList = Ext.create('Ext.List',{
title : 'tab1',
store : store,
itemTpl : '{title}',
onItemDisclosure : function(){
store.add({title : 'Four'});
}
}),
secondList = Ext.create('Ext.List',{
title : 'tab2' ,
store : store,
itemTpl : '{title}'
}),
thirdList = Ext.create('Ext.List',{
title : 'tab3',
store : store,
itemTpl : '{title}'
});
this.add([
firstList,
secondList,
thirdList
]) ;
}
});
examle 문제. 두 번째 및 세 번째 목록이 표시되지 않지만 모든 목록의 DOM이 변경됩니다. 하나의 옵션이 표시됩니다. 하나의 기본 저장소를 만들고 각보기에 대해 별도의 저장소를 만듭니다. 그리고 쇼 뷰가 메인 스토어에서 저장하면 채워집니다. 그러나 그것은 좋지 않게 보입니다. 다른 아이디어?