dattn
dattn

Reputation: 47

Custom extended dijit/_TemplatedMixin throws "Invalid template Error"

Here is a simplified example of what I am trying to do:

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');

});

If I execute this, I get the following error:

Error: Invalid template: Custom Widget "${testName}"

When I use _TemplatedMixin instead of _CustomTemplatedMixin in my CustomWidget Class. It works without errors.

Upvotes: 0

Views: 405

Answers (1)

tik27
tik27

Reputation: 2698

That is because _stringRepl returns a value, since you are subclassing it it should also return a value so return the inheritance value ex.

  _stringRepl: function() {
  console.log('_stringRepl');
  return this.inherited(arguments);
},

Upvotes: 1

Related Questions