2

Dojo のコンテンツ・ペインに問題があり、コンテンツが一瞬表示されてから消えてしまいます。次のエラーが表示されます。

 Uncaught ReferenceError: dijit is not defined index.php:22
    dojo/parser::parse() error 
    Error
    arguments: undefined
    get stack: function () { [native code] }
    message: "Tried to register widget with id==centerPane but that id is already registered"
    set stack: function () { [native code] }
    type: undefined
    __proto__: d

登録されているすべてのIDを破棄できるという回答に出くわしましたが、試してみるとまだエラーが発生します。

var ids = ["contentPane"];
dijit.registry.forEach(function(w){ 
   if(dojo.indexOf(ids,id)){
        w.destroyRecursive();
   }
});

var ids = ["contentPane"];

dijit.registry.forEach(function(w){ 
   if(dojo.indexOf(ids,1)){ // 1 will be yourid it will get destroy
        w.destroyRecursive();
   }
});

このエラーを解決するにはどうすればよいですか?

4

2 に答える 2

1

parseOnLoad が true に設定されているときに、この問題に直面しました。私の理解では、ウィジェットの登録が有効になります。無効にすると、エラーはなくなりました。

<script type="text/javascript">
    var dojoConfig = {          
        parseOnLoad:false,

.....

于 2014-11-17T16:55:52.840 に答える
1

それを解決したのは簡単なことでしたが、他の誰かが私の間違いを犯した場合に備えて、答えを貼り付けます。私の元のコード:

    <script>
      require(["dojo/parser", "dijit/layout/BorderContainer", "dijit/layout/ContentPane"],
        function (parser) {
        parser.parse();
      });
</script>

固定コード:

<script>
  require(["dojo/parser", "dijit/layout/BorderContainer", "dijit/layout/ContentPane"]);
</script>
于 2013-02-02T16:40:46.027 に答える