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

解决了它,这很简单,但我会坚持回答,以防其他人犯我的错误。我的原始代码:

    <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 回答
1

当 parseOnLoad 设置为 true 时,我遇到了这个问题。据我了解,它启用了小部件注册。一旦我禁用错误就消失了。

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

......

于 2014-11-17T16:55:52.840 回答