0

CDN から Dojo をロードすると、すべて問題なく動作します。ローカルにロードすると、ミックスインが機能せず、コンソールに次のエラーが表示されます。

07-01 02:47:22.428: E/Web コンソール (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>

しかし、スクリプト src を CDN リファレンスから変更し、これを使用すると:

<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/dojo/dojo.js」
「dojo/dojox/mobile.js」
「dojo/dojox/mobile」(すべてのサブフォルダーを含むフォルダー全体)

どんな助けでも大歓迎です。

--ジョシュ

4

1 に答える 1

1

lib ディレクトリに dijit/ フォルダがありません。
実際、dojox/mobile はいくつかの dijit モジュールに依存しています (たとえば、FilterListMixin には「dijit/registry」が必要です)。dijit/ フォルダーをルートの dojo/ ディレクトリーにコピーすると、同じように機能するはずです。

于 2013-07-01T14:20:45.670 に答える