2013-09-24 20 views
0

我需要在菜單欄項目中顯示圖標以及其在dijit菜單欄中的標籤。根據文檔,我們可以通過在配置中指定iconClass屬性來設置圖標。以下是代碼,但圖標仍未顯示。這是在道場的錯誤嗎?在dijit中顯示圖標以及標籤PopupMenuBarItem

var form1 = {}; 

require(["dojo/ready", "dijit/MenuBar", "dijit/PopupMenuBarItem"], function (ready, MenuBar, PopupMenuBarItem) { 
    ready(function() { 
     form1.menu_bar = new MenuBar({}, "menu"); 
     form1.item1 = new PopupMenuBarItem({ 
      label: "Cut", 
      iconClass: "dijitEditorIcon dijitEditorIconCut" 
     }, "item1"); 
     form1.menu_bar.addChild(form1.item1); 

     form1.menu_bar.startup(); 
    }); 
}); 

JS-FIDDLE: http://jsfiddle.net/X2xjt/

回答

-1

找到了答案。這是不可能的,dijit/PopupMenubarItem。這是原因,爲什麼http://dojotoolkit.org/reference-guide/1.9/dijit/MenuBar.html#icons

+0

成熟的JavaScript工具包無法使用標準小部件標記來做到這一點有點令人失望。但鑑於「這是不可能的」,解決方法是什麼?有沒有辦法做到這一點? – Manachi

+0

您可以使用dojo的dom-construct將一個div添加到包含圖標的'PopupMenubarItem'中。那可行。 – Sam007

0

的文件確實是正確的。如果您用dijit/MenuItem換出PopupMenuBarItem,您會看到該圖標按預期在菜單項旁邊呈現。 PopupMenuBarItem要求在創建時指定popup屬性(請參閱reference docs),當調用form1.menu_bar.startup()時會導致引發錯誤。

var form1 = {}; 

require(["dojo/ready", "dijit/MenuBar", "dijit/MenuItem"], function (ready, MenuBar, MenuItem) { 
    ready(function() { 
     form1.menu_bar = new MenuBar({}, "menu"); 
     form1.item1 = new MenuItem({ 
      label: "Cut", 
      iconClass: "dijitEditorIcon dijitEditorIconCut" 
     }, "item1"); 
     form1.menu_bar.addChild(form1.item1); 

     form1.menu_bar.startup(); 
    }); 
}); 

http://jsfiddle.net/X2xjt/2/

+0

我不認爲MenuItem旨在與MenuBar一起使用它應該與Menu一起使用。此外,如果您使用此方法添加多個菜單項,則每個菜單項都將顯示在一個新行中,因爲我們要求所有項目在同一行中水平顯示。看到這個更新的例子:http://jsfiddle.net/X2xjt/3/ –

+0

有沒有解決這個問題? – Sam007

+0

是的,一個解決方案將是不錯的。 – Manachi