javascript - Dojo 1.10 Widget 不是构造函数

标签 javascript dojo widget

我有以下自定义小部件,我想在另一个名为 Core.jsJavascript 文件中实例化它。

仪表板小部件

define([
"dojo/_base/declare",
"dojo/_base/config",
"dojo/ready", 
"dojo/_base/window",
"dijit/_WidgetBase",
"dijit/_TemplatedMixin",
], function(
   v_declare,
   v_config,
   v_ready,
   v_window,
   v_WidgetBase,
   v_TemplatedMixin,
) {
  return v_declare("dashboard", [v_WidgetBase, v_TemplatedMixin], {
    templateString: "<div>hello world</div>",
    constructor: function(setting) {
        console.log("smtg..");
    },
    buildRendering: function() {
        var v_context = this;
        var v_domNode = this.domNode;
        this.inherited(arguments);

        console.log('Expeerimental');
    },
    init: function() {
        console.log('Expeerimental');
    }
});
});

Core.js 中仪表板小部件的实例化

require([
"dojo/_base/config",
"dojo/_base/declare",
"dojo/dom",
"dojo/dom-class",
"dojo/dom-style",
"dojo/on",
"dojo/topic",
"dojo/domReady!",
"ui/dashboard/dashboard"
], function(
    b_config,
    b_declare,
    b_dom,
    b_domClass,
    b_domStyle,
    b_on,
    b_topic,
    p_dashboard
 ) {

start();


function start(){
    console.log(p_dashboard);
    var dashboard = new p_dashboard();
};

});

但是,在 var dashboard = new p_dashboard(); 行,我收到以下错误:

TypeError: p_dashboard is not a constructor at HTMLDocument._461 (dojo.js:8) "in domReady callback" "TypeError: p_dashboard is not a constructor

我似乎无法弄清楚为什么会出现此错误。请赐教我任何想法吗?谢谢

最佳答案

我认为你的错误在于模块的加载顺序,

Core.js 中,ui/dashboard/dashboard 小部件是在 Ready 插件之后加载的,并且在回调函数中,它是在 之后直接引用的topic 模块(知道回调中没有引用 dojo/domReady!,因为常见约定是不在回调函数中分配返回变量)

因此,尝试在 dojo/domReady! 之前创建 ui/dashboard/dashboard ,如果在 dojo config 中正确配置了路径,dojo 将正确实例化它。

它应该像下面这样:

require([
    "dojo/_base/config",
    "dojo/_base/declare",
    "dojo/dom",
    "dojo/dom-class",
    "dojo/dom-style",
    "dojo/on",
    "dojo/topic",

    "ui/dashboard/dashboard",

    "dojo/domReady!"
], ..... 
);

关于javascript - Dojo 1.10 Widget 不是构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47048040/

相关文章:

javascript - Instagram API 分页 - 上一页

javascript - 如何计算开始日期和结束日期之间的天数

autocomplete - 如何实现类似于 jQuery UI 自动完成的 Dojo 自动完成?

python - Tkinter:将相同的键绑定(bind)到不同的小部件

javascript - rgba 在 IE8 中不工作如何解决这个问题

javascript - 制作 "scrolling"菜单

javascript - 使用 JS 设置 Twig 值

jQuery 和 Intraweb?

c++ - 为什么不为 CMFCMenuButton 绘制下拉箭头?

widget - 如何在 Card 对象上使用 Dismissible