Javascript dojo小部件的初始化

Javascript dojo小部件的初始化,javascript,dojo,Javascript,Dojo,我尝试为我的站点创建自定义小部件。当我加载页面时,它显示: mixin#0不是可调用的构造函数。 clsInfo.cls.prototype未定义 我找不到关于clsInfo的任何信息,所以我不知道它是什么。可能是我使用谷歌dojo的问题: 我自己的脚本位于localhost上。所以当我在页面上初始化dojo时,我的脚本出现了一些问题。我找不到任何关于dojo的好信息,也许我在错误的地方搜索了? 请帮助我解决问题您确定Dojo正在加载吗?您是否将代码放入dojo.addOnLoad()中?使用C

我尝试为我的站点创建自定义小部件。当我加载页面时,它显示: mixin#0不是可调用的构造函数。 clsInfo.cls.prototype未定义 我找不到关于clsInfo的任何信息,所以我不知道它是什么。可能是我使用谷歌dojo的问题:

我自己的脚本位于localhost上。所以当我在页面上初始化dojo时,我的脚本出现了一些问题。我找不到任何关于dojo的好信息,也许我在错误的地方搜索了?
请帮助我解决问题

您确定Dojo正在加载吗?您是否将代码放入dojo.addOnLoad()中?使用CDN时,有时会遇到执行时间问题。dojo.addOnLoad()不仅会在加载DOM时触发,还会在下载dojo资源(如dijit.\u小部件)时调用它。

我在尝试重写dijit.对话框时遇到了这个问题,以便将事件绑定到其中的控件。我们还没有看到绑定部分是否可以工作,但是如果您查看源代码,当作为第二个参数传入的一个基未能解析为“[Object function]”时,就会发生这种情况。就我而言,我是在传递一个字符串

dojo.declare接受3个参数:

  • 正在生成的自定义对象“类”的名称
  • 基类数组,提供功能的父类(不是这些类的字符串名称)
  • 函数和声明的散列
因此,如果要覆盖dijit.Dialog,我必须执行以下操作:

dojo.declare("myDialogType", [dijit.Dialog], {
    function1() {/*Code*/},
    function2() {/*Code*/}
}
我的第二个论点是[“dijit.Dialog”],这就是问题所在


我强烈建议将Web Inspector或Firebug与Dojo库的未压缩本地副本一起使用,而不是使用CDN来找出发生了什么并调试这些类型的问题。Dojo的文档非常广泛,但在某些方面并不完整,必须通过查看代码所期望的内容来了解某些行为。这并不是对作者的轻视;一旦你开始使用它,它将是一个非常棒的产品,任何关于志愿工作的文档都将受到赞赏。

当我把我的需求顺序搞砸时,我遇到了这个问题,这使得
\u WidgetBase
不是
\u WidgetBase
真正的东西。这似乎是一个容易出错的地方。

请发布(至少部分)您的小部件的dojo.declare语句。很少有人会用这些信息猜测你的问题。