在小部件之外的AMD中使用dojo dojox / dtl

时间:2012-02-11 07:58:54

标签: dojo

我想在AMD的一个WIDGET外面使用dojo doxox / dtl!
目前(2012-02-10)该文档未更新至dojo 1.7 AMD(http://dojotoolkit.org/reference-guide/dojox/dtl.html)。
在旧文档中,非AMD示例是:

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”。

我的问题是:

在没有继承“dojox / dtl / _Templated”的情况下,有人可以帮助我在小部件之外做dtl模板吗?

提前致谢了 沃尔夫冈

1 个答案:

答案 0 :(得分: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);        
...