DOJO 错误 ID 已注册

Posted

技术标签:

【中文标题】DOJO 错误 ID 已注册【英文标题】:DOJO error Id is already registered 【发布时间】:2013-12-18 06:34:04 【问题描述】:

您好,我是 dojo 的新手,遇到了一个简单的问题。我收到一个错误 尝试使用 id==listGrid 注册小部件,但该 id 已注册。让我与您分享一段代码

我有三个单选按钮,单击任何单选按钮都会导致网格。我对所有三个单选按钮使用相同的 div。第一次网格将出现在第一个单选按钮上,但第二次出现上述错误。我在单击单选按钮时调用此函数

_showList:function()

    var item = this.gc.getSelectedItem()
    var id=item.id;
    var cont = 'zone';
    var action='getCityListById';
    var controller='network';
    this.cityGc = new GridViewControl(columns:
        [
          action:action, controllerName:controller,parameters: id:item.id, cont: cont,
          name:"City Name", field:"name", width: "200px", editable: false
          ], diff:220
    ,this.zoneListGrid);           

zoneListGrid 是一个对所有三个单选按钮都相同的 dojo 附加点。请提出一些我可以解决的问题。提前致谢

【问题讨论】:

【参考方案1】:

由于每次单击单选按钮都会触发这段代码,所以 dojo 将尝试在第二次单击时创建另一个网格组件。因为该附加点上已经存在一个小部件,所以会引发错误。

要么重新使用已经存在的网格(对 this.cityGc 执行 === null 检查),要么先销毁现有的网格(this.cityGc.destroy())。

【讨论】:

以上是关于DOJO 错误 ID 已注册的主要内容,如果未能解决你的问题,请参考以下文章

没有 id 的小部件上出现“id 已注册”错误

错误:尝试使用 id==grid1 注册小部件,但该 id 已注册

删除具有相同捆绑字符串的已注册应用后,如何使用捆绑 ID 字符串注册应用

规范注册 id gcm

在dijit的图标按钮的点击加载的dijit日历的具体日期禁用

生成注册密码导致 404 错误