以下是我尝试做的简化示例:
https://jsfiddle.net/1c5qpke9/2/
require([
'dojo/_base/declare',
'dijit/_WidgetBase',
'dijit/_TemplatedMixin',
'dojo/domReady!'
], function(declare, _WidgetBase, _TemplatedMixin) {
var _CustomTemplatedMixin = declare([_TemplatedMixin], {
_stringRepl: function() {
console.log('_stringRepl');
this.inherited(arguments);
},
_fillContent: function() {
console.log('buildRendering');
this.inherited(arguments);
}
});
var CustomWidget = declare([_WidgetBase, _CustomTemplatedMixin], {
templateString: '<div class="${baseClass}"><span>Custom Widget "${testName}"</span></div>',
testName: 'TestName'
});
new CustomWidget({}, 'MyWidget');
});
如果我执行此操作,则会收到以下错误:
错误:模板无效:自定义窗口小部件 &#34; $ {测试名}&#34;
当我在CustomWidget类中使用_TemplatedMixin
而不是_CustomTemplatedMixin
时。它没有错误。
答案 0 :(得分:1)
这是因为_stringRepl返回一个值,因为你是它的子类,它也应该返回一个值,所以返回继承值 离。
_stringRepl: function() {
console.log('_stringRepl');
return this.inherited(arguments);
},