2012-02-11 42 views
3

我想在AMD中使用dojo doxox/dtl,在WIDGET之外!
目前(2012-02-10)該文檔未更新爲dojo 1.7 AMD(http://dojotoolkit.org/reference-guide/dojox/dtl.html)。
在舊文檔的非AMD的例子是:在AMD外部使用dojo dojox/dtl

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" }); 
console.debug(template.render(context)); // Hello World! 

要產生新的Dojo 1.7架構相同的輸出,我的解決辦法是將繼承「DojoX中/ DTL/_Templated」,並在構造函數新類將模板值設置爲屬性「templateString」。

我的問題是:

任何人可以幫助我做一個小部件之外DTL模板沒有子 「DojoX中/ DTL/_Templated」?很多提前

感謝
沃爾夫岡

回答

4

我找到了解決辦法:

define(["dojox/dtl/_base", "dojox/dtl/Context"], function (dtl, Context) { 
    var compiledTemplate, templateObj, contextObj; 
    templateObj = new dtl.Template ("Hello {{ place }}!"); 
    contextObj = new Context({ place: "World" }); 
    compiledTemplate = templateObj.render(contextObj);   
... 
+0

您還希望包括「DojoX中/ DTL /標籤/邏輯」,並添加一個別名功能則params的列表在第1行。您不需要更改下面的代碼;只要確保模塊是必需的。 – Patrick 2015-11-02 19:17:33