自定义扩展 dijit/_TemplatedMixin 抛出 "Invalid template Error"
Custom extended dijit/_TemplatedMixin throws "Invalid template Error"
这是我正在尝试做的事情的简化示例:
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');
});
如果执行此操作,我会收到以下错误:
Error: Invalid template: Custom Widget
"${testName}"
当我在 CustomWidget Class 中使用 _TemplatedMixin
而不是 _CustomTemplatedMixin
时。它可以正常工作。
那是因为 _stringRepl return 是一个值,因为您正在对它进行子类化,它也应该 return 一个值,所以 return 继承值
例如
_stringRepl: function() {
console.log('_stringRepl');
return this.inherited(arguments);
},
这是我正在尝试做的事情的简化示例:
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');
});
如果执行此操作,我会收到以下错误:
Error: Invalid template: Custom Widget "${testName}"
当我在 CustomWidget Class 中使用 _TemplatedMixin
而不是 _CustomTemplatedMixin
时。它可以正常工作。
那是因为 _stringRepl return 是一个值,因为您正在对它进行子类化,它也应该 return 一个值,所以 return 继承值 例如
_stringRepl: function() {
console.log('_stringRepl');
return this.inherited(arguments);
},