私はextjs4で働いています。チェックボックス選択モデルのグリッドがあります。グリッドはファイルとフォルダーを表示しています。フォルダが選択された場合、メニューを非表示にしたい。したがって、コードを次のように記述しました-
selectionchange:function( model, selected, eOpts ){
var centralPanel = me.up();
var actionBtn = centralPanel.queryById('libraryactionBtn');
if(selected.length > 1) {
actionBtn.show();
//var i=0;
for(i=0;i<selected.length;i++)
{
if(selected[i].data.isLeaf)
{
centralPanel.queryById('library-action-menu-view').hide();
centralPanel.queryById('library-action-menu-viewOrAddTag').hide();
centralPanel.queryById('library-action-menu-viewOrAddNotes').hide();
centralPanel.queryById('library-action-menu-copyToCompaign').hide();
centralPanel.queryById('library-action-menu-copyToProject').hide();
centralPanel.queryById('library-action-menu-sendLink').hide();
centralPanel.queryById('library-action-menu-addtofavorite').hide();
centralPanel.queryById('library-action-menu-downloadItem').hide();
}
}
} else {
actionBtn.hide();
}
ここで、フォルダーの selected.data.isLeaf は false です。初回のみ正しく実行されます。次回ファイルを選択すると、ファイルの非表示メニューも表示されます。また、フォルダの選択が解除されている場合は、その非表示メニューも表示されます。だから私はどのような修正をする必要があります