DojoX DTL

openkk 13年前
     <p>DojoX DTL 是 DTL(Django Template Language)的 Dojo 实现版本。Neil Roberts 将 DTL 移植到 DojoX 中,并在 DTL 只支持文本基础上增加了对 HTML 元素的支持。DojoX DTL 完全实现了对 DTL 语法的支持,已有的 Django 模板可以很容易地移植到 DojoX DTL。</p>    <p>DojoX DTL 包括文本和 HTML 两个实现,构造函数分别为 dojox.dtl.Template 和 dojox.dtl.HtmlTemplate。这两个构造函数都可以接受一个字符串或 URL 作为参数,HTMLTemplate 也可以传入一个 DOM 节点作为参数。</p>    <p>Template 只适用于文本,不能用它来操纵 DOM 节点。但是我们可以用它来产生文本,然后将生成的文本作为某个 DOM 节点的 innerHTML。</p>    <p>HTMLTemplate 是 Template 的扩展,这就是说 HTMLTemplate 不仅支持所有的 Template 操作,还支持直接对 DOM 节点的操作。例如一个节点位于 {% if %} 块标签中,如果 if 标签求值为真,那么这个节点会被添加到 DOM 中,如果 if 标签求值为假,则这个节点将会从 DOM 中移除。</p>    <p>DojoX DTL 的使用与 Django Template Language 类似,首先创建一个 Template 对象,然后创建模板的上下文信息(context,可以理解为变量的集合),最后将 context 作为参数调用 Template 对象的 render 方法输出结果。</p>    <pre class="brush:javascript; toolbar: true; auto-links: false;"> 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));</pre>    <p><strong>项目主页:</strong><a href="http://www.open-open.com/lib/view/home/1322999187639" target="_blank">http://www.open-open.com/lib/view/home/1322999187639</a></p>    <p></p>