DojoX DTL 入门
2009-11-18 00:00:00 来源:WEB开发网Template 只适用于文本,不能用它来操纵 DOM 节点。但是我们可以用它来产生文本,然后将生成的文本作为某个 DOM 节点的 innerHTML。
HTMLTemplate 是 Template 的扩展,这就是说 HTMLTemplate 不仅支持所有的 Template 操作,还支持直接对 DOM 节点的操作。例如一个节点位于 {% if %} 块标签中,如果 if 标签求值为真,那么这个节点会被添加到 DOM 中,如果 if 标签求值为假,则这个节点将会从 DOM 中移除。
Hello Word
DojoX DTL 的使用与 Django Template Language 类似,首先创建一个 Template 对象,然后创建模板的上下文信息(context,可以理解为变量的集合),最后将 context 作为参数调用 Template 对象的 render 方法输出结果。
清单 2. Hello World dojo.require("dojox.dtl");
dojo.require("dojox.dtl.Context");
var template = new dojox.dtl.Template("Hello {{ place }}!");
var context = new dojox.dtl.Context({
place: "World"
});
alert(template.render(context));
上面的例子首先调用 dojox.dtl.Template 构造函数创建了一个编译好的模板对象 template,该模板定义了对一个变量 place 的引用。这个模板对象可以在以后随时被调用,而不用每次都重新编译。然后调用 dojox.dtl.Context 创建了上下文对象 context,定义了 place 变量。这时调用 template.render(context) 会输出“Hello World”。
前面提到 Template 只适用于文本,但是产生的文本可以作为 DOM 节点的 innerHTML。为了方便这种类型的应用,Template 对象还有一个 update 方法,用来将模板输出的文本作为一个或多个节点的 innerHTML。update 方法有两个参数,第一个是要更新的节点引用、节点 ID 或是通过 dojo.query 返回的节点列表,第二个参数类型是对象或是 URL,作为模板的上下文信息。
更多精彩
赞助商链接