dojo 嵌套的自定义控件未定义不是函数



我有一个名为 stat.widget.Weekly 的小部件,它是一个_Container,它require stat.widget.Daily Daily但是每当我使用new Daily()时,我都会得到

Uncaught TypeError: undefined is not a function

我的代码是这样的

require([
 "dojo/_base/declare", "dojo/parser", ..., "stat/widget/Daily", "dijit/_Container"
 ], function(declare, ... , _WidgetBase, _TemplatedMixin, Daily, _Container){
     declare("stat.widget.Weekly", [_WidgetBase, _TemplatedMixin, _Container], {
        ....
        update: function(){
            new Daily();//< Fires Error
        },
        postCreate: function(){
            var self = this;
            setTimeout(function(){
              self.update();
            }, 500);            
        }
     });
 });

但是这个stat/widget/Daily可以在控制台中实例化,new

如果你的 stat.widget.Weekly 放在 stat-Modulepath/widget/Daily.js 下的文件中,那么在类加载器中处理此语法会更流畅:

define([ // using define instead of require
 "dojo/_base/declare", "dojo/parser", ..., "stat/widget/Daily", "dijit/_Container"
 ], function(declare, ... , _WidgetBase, _TemplatedMixin, Daily, _Container){
 var myPrivates = declare("stat.widget._WeeklyResource", [], {
     ...
 });
 var myDefinition = declare("stat.widget.Weekly", [_WidgetBase, _TemplatedMixin, _Container], {
     ...
 });
 // returning the definition
 return myDefinition;

});

最新更新