自定义扩展 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);
},