0

1.8.3 から 1.9.1 にアップグレードしています。ビルドはスムーズに進みましたが、ページの読み込みに問題があります... 読み込み中、Dojo は HTML テンプレート内の dojoType ウィジェットを解析できません。プレーンな DOM ノードには他の接続点があり、それらの接続点にはアクセスできますが、dojoType ノードの接続点は定義されていません。ここで 1.9 の変更点を調べてみましたが、あまり運がありませんでした。似たような経験をした人はいますか?

スタック トレースは次のとおりです。

myproj/views/_Home.js  <---- crashes here while attempting to 
                             read a widget's attach point in the template
dijit/_WidgetBase.js: line 541
dojo/_base/declare.js: line 203
dijit/_WidgetsInTemplateMixin.js: line 107
dojo/_base/declare.js: line 203
myproj/views/_Home.js: line 26 <--- Page loads with this widget... This is a 
                                    templated widget, and this line is the     
                                    this.inherited(arguments) of startup().

Dojo ヘッドへのロード:

    <script type="text/javascript" src="/static/tara/config.js?1384202981691"></script>
    <script type="text/javascript">
        var $appBaseUri = 'http://cms.mydemo.com';
        var dojoConfig = {
            parseOnLoad: false,
            dojoBlankHtmlUrl: "/static/cms/blank.html",
            uploaderPath: "/static/nocache/uploader.swf",
            locale: "en-gb",
            cacheBust: "1384202981691",
            debugAtAllCosts: true,
            isDebug: true,
            packages: $appconfig.devMode.packages               
        }
    </script>       
    <script type="text/javascript" src="/static/lib/dojo/dojo/dojo.js?1384202981691"></script>
    <script type="text/javascript">
        dojo.require("myapp._dojo");
        dojo.addOnLoad(function(){
            dojo.require("myapp._base");
            dojo.addOnLoad(function(){
                dojo.require("cms.models._all");
                dojo.require("cms._base");
            });
        });
    </script>

レンダリングされるテンプレート、以下の home.html。他のすべてのアタッチポイントにはアクセスできますが、「mainStack」と「windows」にはアクセスできません。

<div class="container" title="">
    <div dojoAttachPoint="header">
    <div dojoAttachPoint="headerInner">
        <div dojoAttachPoint="topNavNode">
        </div>
        <div dojoAttachPoint="mainDetails"></div>
        <div class="clear"></div>
        </div>
    </div>
    <div dojoAttachPoint="mainStack" dojoType="dijit.layout.StackContainer"></div>
</div>
<div dojoAttachPoint="windows" dojoType="myapp.layout.WindowContainer"></div>
4

1 に答える 1

0

あなたの質問はかなり漠然としていますが、私はここで手足に出て、代わりにdojoType属性を切り替える必要があると仮定しますdata-dojo-type...アタッチポイントなどについても同様です:

<div id="homeView" data-dojo-type="myproj/views/_Home" data-dojo-props="someProp:'someValue'"></div>

そしてウィジェットのテンプレートで:

<div>
    <div data-dojo-attach-point="someAttachPoint">...</div>
    ...
</div>

それはあなたが探しているものですか?

于 2013-11-11T23:59:28.980 に答える