dojox/mobile/Badge未在自定义列表项中呈现

dojox/mobile/Badge未在自定义列表项中呈现,mobile,dojo,listitem,badge,Mobile,Dojo,Listitem,Badge,这是自定义列表项的模板: var template = "<div>" + " <div style='display: inline;' data-dojo-attach-point='labelNode'></div>" + " <div data-dojo-type='dojox/mobile/Badge' data-dojo-props='value:${size}' style='display:

这是自定义
列表项的模板

var template =
    "<div>" +
    "       <div style='display: inline;' data-dojo-attach-point='labelNode'></div>" +
    "       <div data-dojo-type='dojox/mobile/Badge' data-dojo-props='value:${size}' style='display: inline; position: absolute; right: 100px;'></div>" +
    "</div>";
define([
    "dojox/mobile/ListItem",
    "dijit/_TemplatedMixin",
    "dojox/mobile/Badge",
    "dojo/_base/declare"
], function (ListItem, TemplatedMixin, Badge, declare) {
    var template =
        "<div class='areaDone${done}'>" +
        "       <div style='display: inline;' data-dojo-attach-point='labelNode'></div>" +
        "       <div data-dojo-type='dojox/mobile/Badge' data-dojo-props='value:${size}' style='display: inline; position: absolute; right: 100px;'></div>" +
        "</div>";

    TemplatedListItem = declare("CustomListItem",
        [ListItem, TemplatedMixin], {
            label: "My label",
            size: "0",
            templateString: template
        }
    );
});
下面是html(jade)代码:

最后,用于填充列表的js:

store = new Memory({data: JSON.parse(data), idProperty: "Desc"});
list.setStore(store);

您缺少从
\u WidgetsInTemplateMixin扩展的功能,此mixin告诉模板系统模板中有其他小部件,并在小部件实例化时实例化它们。你可以

有关如何在代码中使用它的示例,请阅读注释:

define([
    "dojox/mobile/ListItem",
    "dijit/_TemplatedMixin",
    "dijit/_WidgetsInTemplateMixin", //Include this module
    "dojox/mobile/Badge",
    "dojo/_base/declare"
], function (ListItem, TemplatedMixin, _WidgetsInTemplateMixin, Badge, declare) {
    var template =
        "<div class='areaDone${done}'>" +
        "       <div style='display: inline;' data-dojo-attach-point='labelNode'></div>" +
        "       <div data-dojo-type='dojox/mobile/Badge' data-dojo-props='value:${size}' style='display: inline; position: absolute; right: 100px;'></div>" +
        "</div>";

    TemplatedListItem = declare("CustomListItem",
        [ListItem, TemplatedMixin, _WidgetsInTemplateMixin/*Extend*/], {
            label: "My label",
            size: "0",
            templateString: template
        }
    );
});
定义([
“dojox/mobile/ListItem”,
“dijit/_TemplatedMixin”,
“dijit/_WidgetsInTemplateMixin”,//包括此模块
“dojox/mobile/Badge”,
“dojo/_base/declare”
],函数(ListItem,TemplatedMixin,_WidgetsInTemplateMixin,Badge,declare){
变量模板=
"" +
"       " +
"       " +
"";
TemplatedListItem=declare(“CustomListItem”,
[ListItem,TemplatedMixin,_WidgetsInTemplateMixin/*Extend*/]{
标签:“我的标签”,
大小:“0”,
模板字符串:模板
}
);
});

您是否正在使用/创建小部件?你能发布你的js/widget的一段代码吗?我只是想在EdgeToEdgeStoreList中使用我的自定义ListItem。我将在我的问题中添加一些其他代码。如果还不够,请问!它就像一个符咒!我不理解模板mixin的作用。此外,在为
dojox
开发时,我还担心include
dijit
组件会带来混乱!
store = new Memory({data: JSON.parse(data), idProperty: "Desc"});
list.setStore(store);
define([
    "dojox/mobile/ListItem",
    "dijit/_TemplatedMixin",
    "dijit/_WidgetsInTemplateMixin", //Include this module
    "dojox/mobile/Badge",
    "dojo/_base/declare"
], function (ListItem, TemplatedMixin, _WidgetsInTemplateMixin, Badge, declare) {
    var template =
        "<div class='areaDone${done}'>" +
        "       <div style='display: inline;' data-dojo-attach-point='labelNode'></div>" +
        "       <div data-dojo-type='dojox/mobile/Badge' data-dojo-props='value:${size}' style='display: inline; position: absolute; right: 100px;'></div>" +
        "</div>";

    TemplatedListItem = declare("CustomListItem",
        [ListItem, TemplatedMixin, _WidgetsInTemplateMixin/*Extend*/], {
            label: "My label",
            size: "0",
            templateString: template
        }
    );
});