2014-04-23 28 views
0

當選擇菜單項並調用我的changeHandlerfunction(cycleBtn, activeItem))時,建議使用什麼ExtJs機制來確定我正在使用哪個項目?如何確定我正在使用ExtJs在changeHandler中處理哪個菜單項?

使用該項目的文字並不理想,因爲它可能會改變。其他框架通常會提供一個值屬性,它可能與顯示的實際文本有所不同,這些文本可以用來準確地確定您正在使用的項目。

ExtJs有一個屬性,我可以參考選定的菜單項目,以準確確定我正在處理哪個項目?顯然,我也預先設置了這個。

回答

1

可以使用的itemId,而不是ID,因爲的itemId是本地的容器,菜單在這種情況下。您只需確保菜單項的itemIds在該菜單中是唯一的。

0

您可以使用activeItem的id,但您需要知道如果更改代碼,id也會改變。所以,你不能相信獨特的id。如果您爲菜單的每個項目提供一個唯一的ID,則id在整個應用程序中將變得獨一無二。

Ext.create('Ext.button.Cycle', { 
    showText: true, 
    prependText: 'View as ', 
    renderTo: Ext.getBody(), 
    menu: { 
     id: 'view-type-menu', 
     items: [{ 
      text: 'text only', 
      iconCls: 'view-text', 
      checked: true 
     },{ 
      text: 'HTML', 
      iconCls: 'view-html' 
     }] 
    }, 
    changeHandler: function(cycleBtn, activeItem) { 
     console.log(activeItem.id) 
    } 
}); 
// view-type-menu is an unique id 
console.log(Ext.getCmp('view-type-menu')); 
相關問題