Javascript 在dijit PopupMenuBarItem中显示图标和标签

Javascript 在dijit PopupMenuBarItem中显示图标和标签,javascript,dojo,Javascript,Dojo,我需要在菜单栏项中显示图标,并在dijit菜单栏中显示其标签。根据文档,我们可以通过在配置中指定iconClass属性来设置图标。以下是代码,但图标仍不显示。它是dojo中的一个bug吗 var form1 = {}; require(["dojo/ready", "dijit/MenuBar", "dijit/PopupMenuBarItem"], function (ready, MenuBar, PopupMenuBarItem) { ready(function () {

我需要在菜单栏项中显示图标,并在dijit菜单栏中显示其标签。根据文档,我们可以通过在配置中指定iconClass属性来设置图标。以下是代码,但图标仍不显示。它是dojo中的一个bug吗

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-FIDLE:
文档确实是正确的。如果使用dijit/MenuItem替换PopupMenuBarItem,您将看到图标按预期呈现在菜单项旁边。PopupMenuBarItem要求在创建时指定popup属性,请参见,这导致在调用form1.menu\u 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();
    });
});

找到了答案。使用dijit/PopupMenubarItem无法做到这一点。这就是为什么

我不认为MenuItem应该与MenuBar一起使用的原因,它应该与Menu一起使用。此外,如果使用这种方法添加多个菜单项,则每个菜单项都将显示在新行中,我们要求所有菜单项水平显示在同一行中。看到这个更新的例子:有解决方案吗?是的,一个解决方案会很好,不是吗。一个成熟的javascript工具包不能用标准的小部件标记来实现这一点,这有点令人失望。但考虑到这是不可能的,解决办法是什么?有没有办法做到这一点?您可以简单地使用dojo的dom构造向包含图标的PopupMenubarItem添加一个div。那就行了。