3 <title>Testing dojox.dtl using a blog example</title>
4 <script src="../../../dojo/dojo.js" djConfig="usePlainJson: true, parseOnLoad: true"></script>
6 dojo.require("dijit._Widget");
7 dojo.require("dojox.dtl._HtmlTemplated");
8 dojo.require("dojo.parser");
10 dojo.declare("demo.Blog", [dijit._Widget, dojox.dtl._HtmlTemplated],
12 buffer: dojox.dtl.render.html.sensitivity.NODE,
13 templatePath: dojo.moduleUrl("dojox.dtl.demos.templates", "blog_list.html"),
15 url: dojo.moduleUrl("dojox.dtl.demos.templates", "blog_base.html"),
18 constructor: function(props, node){
23 postCreate: function(){
26 url: dojo.moduleUrl("dojox.dtl.demos.json.blog", "get_blog_list.json"),
28 }).addCallback(this, "_loadList");
31 _showList: function(obj){
32 this.title = "Blog Posts";
33 this.setTemplate(this.templatePath);
35 _showDetail: function(obj){
36 var key = obj.target.className.substring(5);
39 this.title = "Blog Post";
40 this.blog = this.blogs[key];
41 this.blog.title = this.blog_list[key].title;
42 this.setTemplate(dojo.moduleUrl("dojox.dtl.demos.templates", "blog_detail.html"));
45 url: dojo.moduleUrl("dojox.dtl.demos.json.blog", "get_blog_" + key + ".json"),
51 }).addCallback(this, "_loadDetail");
54 _showPage: function(obj){
55 var key = obj.target.className.substring(5);
58 this.title = this.pages[key].title;
59 this.body = this.pages[key].body;
60 this.setTemplate(dojo.moduleUrl("dojox.dtl.demos.templates", "blog_page.html"));
63 url: dojo.moduleUrl("dojox.dtl.demos.json.blog", "get_page_" + key + ".json"),
69 }).addCallback(this, "_loadPage");
72 _loadList: function(data){
73 this.title = "Blog Posts";
74 dojo.mixin(this, data);
77 _loadDetail: function(data){
78 data.date = new Date(data.date);
79 this.blogs[data.key] = data;
80 this.title = "Blog Post";
82 this.blog.title = this.blog_list[data.key].title;
83 this.setTemplate(dojo.moduleUrl("dojox.dtl.demos.templates", "blog_detail.html"));
85 _loadPage: function(data){
86 this.pages[data.key] = data;
87 dojo.mixin(this, data);
88 this.setTemplate(dojo.moduleUrl("dojox.dtl.demos.templates", "blog_page.html"));
94 <div dojoType="demo.Blog" />