선택한 탭을 기반으로 다른 데이터 저장소의 데이터를 동적으로로드하는 방법에 대한 조언을 찾고 있습니다.extJS 5.0은 탭 선택에 따라 다른 저장소를 바인드합니다.
두 저장소는 모두 동일한 열 이름을 사용하므로 dataIndex로드는 변경하지 않아야합니다.
은 "완료"탭 내가
샘플 "완료"가게를 결합하고자 선택한 경우 "현재"탭 내가 "현재"가게
을 결합하고자 선택하면
viewModel: {
formulas: {
activeStore: function(get) {
var active = get('active');
return this.getStore(active == 'aTab' ? 'a' : 'b');
}
},
data: {
active: 'aTab'
},
stores: {
a: 'Change',
b: 'ChangeArchive',
}
},
{
xtype: 'tabpanel',
id: 'changetabs',
tabBarHeaderPosition: 1,
headerPosition: 'top',
plain: true,
width: 480,
height: 30,
items: [{
title: 'Current',
itemId: 'aTab'
},
{
title: 'Completed',
itemId: 'bTab'
}
],
listeners: {
tabchange: function(tabPanel, newTab) {
tabPanel.ownerCt.getViewModel().set('active', newTab.getItemId());
}
}
},
그리고 그리드
{
region: 'west',
xtype: 'grid',
bind: {store: '{activeStore}'},
viewConfig: {
markDirty: false
},
id: 'ActionList',
columns: {
items: [
{ text: 'Action', dataIndex: 'action_id', width: 300},
{ text: 'Status', dataIndex: 'status', width: 180},
]
},
listeners: {
select: 'onSelectAction'
}
}
VM에 활성 탭을 나타내는 키가 있습니다. tabchange에 대한 청취자가 있고 그 키를 찔러 넣은 다음 상기 키를 기반으로 올바른 상점을 반환하는 수식을 작성하십시오. –