Классы наследования Dojo, выдающие ошибку при загрузке на construtor
Я пытаюсь получить объект commonBase, который будет расширен многими классами. но во время самой загрузки у меня возникла проблема с construtor во время загрузки моей страницы.
Мой commonBase.js
define(
["dojo/_base/declare","dojox/gfx",
"dojox/gfx/shape","dojo/_base/lang"
], function(declare, gfx, shape, lang){
var commonBase = declare([], {
className:"commonbase",
x:0,
y:0,
constructor : function() {
console.log("Created commonBase obj.");
},
//some more methods.
});
});
и мой унаследованный класс - shelf.js
define([
"dojo/_base/declare","dojo/_base/lang",
"view/commonBase"
],
function(declare, lang, commonBase){
//var shelf =
return declare("view.shelf",[commonBase], {
//className:"shelf",
constructor: function(){
//declare.safeMixin(this,args);
console.log("shelf");
this.className = "shelf";
}
});
});
я получаю Uncaught Ошибка: объявите view.shelf: mixin #0 не вызываемый конструктор. dojo.js:6917
я даже пытался вызвать this.inherited() и объявить.safeMixin(). но тщетно.
Эта ошибка возникает при загрузке страницы. Я понимаю, что это даже не пытается получить доступ к этому объекту. Я вижу в трассировке стека консоли, это происходит во время некоторой фазы guardCheckComplete в загрузчике dojo.
1 ответ
Вам нужно вернуть commonBase
после того как вы определите это с declare
, Возвращаемое значение обратного вызова в commonBase.js
это то, что возвращается в обратных вызовах, которые require
или же define
commonBase
,
var commonBase = declare([], {
className:"commonbase",
x:0,
y:0,
constructor : function() {
console.log("Created commonBase obj.");
},
//some more methods.
});
return commonBase;