Swappable Templates

A simple demo of how one might set up a widget that uses different templates

by brianarn

HTML

<link rel="stylesheet" href="https://ajax.googleapis.com/ajax/libs/dojo/1.6/dojo/resources/dojo.css">
<link rel="stylesheet" href="https://ajax.googleapis.com/ajax/libs/dojo/1.6/dijit/themes/claro/claro.css">
<div id="container"></div>

JavaScript

dojo.require("dijit._Widget");
dojo.require("dijit._Templated");

dojo.ready(function(){
    dojo.declare("MyWidget", [dijit._Widget, dijit._Templated], {
        templateString: "<div>Foo</div>",

        postMixInProperties: function(){
            if (this.useBar) {
                this.templateString = "<div>Bar</div>";
            }
        }
    });

    var container = dojo.byId('container');
    var foo = new MyWidget({}).placeAt(container);
    var bar = new MyWidget({useBar: true}).placeAt(container);
});