dojox
Version:
Dojo eXtensions, a rollup of many useful sub-projects and varying states of maturity – from very stable and robust, to alpha and experimental. See individual projects contain README files for details.
35 lines (32 loc) • 1.23 kB
JavaScript
define([
"dojo/_base/declare",
"dojo/_base/lang",
"dijit/_WidgetBase",
"dijit/_TemplatedMixin",
"dijit/_WidgetsInTemplateMixin",
"./at"
], function(declare, lang, _WidgetBase, _TemplatedMixin, _WidgetsInTemplateMixin){
return declare("dojox.mvc.Templated", [_WidgetBase, _TemplatedMixin, _WidgetsInTemplateMixin], {
// summary:
// A templated widget, mostly the same as dijit/_Templated, but without deprecated features in it.
// bindings: Object|Function
// The data binding declaration (or simple parameters) for child widgets.
bindings: null,
startup: function(){
// Code to support childBindings property in dojox/mvc/WidgetList, etc.
// This implementation makes sure childBindings is set before this widget starts up, as dijit/_WidgetsInTemplatedMixin starts up child widgets before it starts itself up.
var bindings = lang.isFunction(this.bindings) && this.bindings.call(this) || this.bindings;
for(var s in bindings){
var w = this[s], props = bindings[s];
if(w){
for(var prop in props){
w.set(prop, props[prop]);
}
}else{
console.warn("Widget with the following attach point was not found: " + s);
}
}
this.inherited(arguments);
}
});
});