Dojox Mobile FilteredListMixin

时间:2013-07-01 07:17:24

标签: dojo

如果我从CDN加载Dojo,一切都运行得很好。如果我在本地加载它,mixin不起作用,我在控制台中收到以下错误:

07-01 02:47:22.428:E / Web Console(7881):错误:声明:mixin#1不是可调用的构造函数。在file:///android_asset/www/libs/dojo/dojo/dojo.js:15

这是一个例子。这很好用:

<!doctype html>
<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/dojo/1.9.1/dojo/dojo.js" data-dojo-config="parseOnLoad:true, mblForceBookmarkable:true"></script>
<script type="text/javascript">
    require([ "dojox/mobile/parser", "dojox/mobile", "dojox/mobile/View", "dojox/mobile/Heading", "dojox/mobile/RoundRectList", "dojox/mobile/ScrollableView", "dojox/mobile/ContentPane", "dojox/mobile/TextBox", "dojox/mobile/EdgeToEdgeList", "dojox/mobile/FilteredListMixin"]);
</script>
<link href="libs/dojo/dojox/mobile/themes/iphone/iphone.css" media="screen"
    rel="stylesheet" title="no title" type="text/css">
<link href="libs/dojo/dojox/mobile/themes/iphone/Accordion.css" media="screen"
    rel="stylesheet" title="no title" type="text/css">
</head>
<body>
<div id="search" data-dojo-type="dojox/mobile/View">
        <h1 data-dojo-type="dojox/mobile/Heading"
            data-dojo-props="fixed: 'top'">Filtered RoundRectList</h1>
        <ul id="list" data-dojo-type="dojox/mobile/RoundRectList"
            data-dojo-mixins="dojox/mobile/FilteredListMixin"
            data-dojo-props="placeHolder: 'Search'">

            <li data-dojo-props='moveTo:"1.information", transition:"slide"'
                data-dojo-type="dojox/mobile/ListItem">Information</li>

            <li data-dojo-props='moveTo:"1.urgency", transition:"slide"'
                data-dojo-type="dojox/mobile/ListItem">Urgency</li>

            <li data-dojo-props='moveTo:"1.data", transition:"slide"'
                data-dojo-type="dojox/mobile/ListItem">Data</li>
        </ul>
    </div>
</body>
</html>

但是如果我从CDN引用中更改脚本src,并使用它:

<script src="libs/dojo/dojo/dojo.js" type="text/javascript" data-dojo-config="parseOnLoad:true, mblForceBookmarkable: true"></script>

然后它不再起作用了。我正在使用标准的dojo-release-1.9.1。我的libs文件夹包含以下文件:

“道场/道场/的dojo.js”
   “道场/ DojoX中/ mobile.js”
   “dojo / dojox / mobile”(整个文件夹包括所有子文件夹)

非常感谢任何帮助。

- 约什

1 个答案:

答案 0 :(得分:1)

您的lib目录缺少dijit /文件夹 实际上,dojox / mobile对几个dijit模块有一些依赖关系(例如,FilterListMixin需要'dijit / registry'),并且根据你的描述,这些模块在你的libs文件夹中不可用。 将dijit /文件夹复制到根目录dojo /目录中,希望它应该可以正常工作。