具有自定义ListItem问题的Dojo EdgeToEdgeStoreList

时间:2014-04-01 13:33:07

标签: javascript dojo

在使用dojo mobile时遇到dojo模板问题。我想为EdgeToEdgeStoreList创建自定义ListItem。

主要html文件index.html包含

<div data-dojo-type="dojox.mobile.EdgeToEdgeStoreList" data-dojo-props="itemRenderer:app.widgets.CustomListItem" id="list"></div>

.js文件,用于在列表中设置商店:

require([ "dojo/ready","dojo/store/Memory", "dojo/parser", "sts/widgets/CustomListItem", "dojox/mobile", "dojo/dom",
        "dijit/registry", "dojox/mobile/ScrollableView", "dojox/mobile/TabBar",
        "dojox/mobile/TabBarButton", "dojox/mobile/EdgeToEdgeStoreList"], function(ready, Memory,  parser) {

            ready(function() {
                console.log('Dojo ready!');

                store = new Memory({
                    data : [{name:'aaa',surname:'AAA'},{name:'bbb', surname: 'BBB'}],
                    idProperty : 'name'
                });

                dijit.registry.byId('list').setStore(store);
            });

});

Widget .js文件

define(["dojo/_base/declare",
    "dijit/_WidgetBase", 
    "dijit/_TemplatedMixin",
    "dojox/mobile/ListItem",
    "dojo/text!./templates/CustomListItem.html"
    ],
function(declare, WidgetBase, TemplatedMixin, ListItem, template){
    return declare('app.widgets.CustomListItem', [WidgetBase, TemplatedMixin, ListItem],{
    templateString: template
});

});

小部件的模板:CustomListItem.html

<div>
    <div>TEST TEST</div>
</div>

有人知道为什么我在小部件声明(WidgetBase,TemplatedMixin,ListItem)中使用这样的顺序,dojo尝试渲染ListItem默认模板但是如果我交换TemplatedMixi和ListItem(WidgetBase,ListItem,TemplatedMixin),一切正常是否正确?我甚至不知道继承顺序对道场很重要。

谢谢。

1 个答案:

答案 0 :(得分:0)

我没有对你的问题有确切的根解释,但事实是ListItem已经从_WidgetBase继承了自己,所以我想说没有理由让你自己的类复制那个继承。

declare('app.widgets.CustomListItem', [ListItem, TemplatedMixin],{});

应该工作并且更简单吗?