DojoX DTL

openkk 13年前發布 | 15K 次閱讀 Dojo 模板引擎

DojoX DTL 是 DTL(Django Template Language)的 Dojo 實現版本。Neil Roberts 將 DTL 移植到 DojoX 中,并在 DTL 只支持文本基礎上增加了對 HTML 元素的支持。DojoX DTL 完全實現了對 DTL 語法的支持,已有的 Django 模板可以很容易地移植到 DojoX DTL。

DojoX DTL 包括文本和 HTML 兩個實現,構造函數分別為 dojox.dtl.Template 和 dojox.dtl.HtmlTemplate。這兩個構造函數都可以接受一個字符串或 URL 作為參數,HTMLTemplate 也可以傳入一個 DOM 節點作為參數。

Template 只適用于文本,不能用它來操縱 DOM 節點。但是我們可以用它來產生文本,然后將生成的文本作為某個 DOM 節點的 innerHTML。

HTMLTemplate 是 Template 的擴展,這就是說 HTMLTemplate 不僅支持所有的 Template 操作,還支持直接對 DOM 節點的操作。例如一個節點位于 {% if %} 塊標簽中,如果 if 標簽求值為真,那么這個節點會被添加到 DOM 中,如果 if 標簽求值為假,則這個節點將會從 DOM 中移除。

DojoX DTL 的使用與 Django Template Language 類似,首先創建一個 Template 對象,然后創建模板的上下文信息(context,可以理解為變量的集合),最后將 context 作為參數調用 Template 對象的 render 方法輸出結果。

 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));

項目主頁:http://www.baiduhome.net/lib/view/home/1322999187639

 本文由用戶 openkk 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!