如何使用dustjs-linkedin作为客户端模板?
我得到了服务器端和客户端模板的想法,但是dust.js让我有些困惑。
为了将dust.js用于客户端模板,您需要三个步骤:
- complie模板
- 加载模板
- 呈现模板
对?
但模板从哪里来? 我看到了两种不同的方法:
1. <script> template <script> 2. <div> template </div>
…他们都在DOM中。 哪个是对的?
我也注意到,你可以通过ajax加载模板,所以模板不会在DOM中看到,但我不知道该怎么做。
另外,我目前正在使用玉石作为快速查看引擎。 是否有必要切换到dust.js? 有什么优势?
这是LinkedIn Dust JS wiki页面,可以回答你的问题,并有很好的例子: http : //linkedin.github.com/dustjs/
但在这里回答你的问题:
是的,你需要编译你的灰尘模板,它成为一个JavaScript文件,你可以通过<script>
标签添加到你的页面,然后调用dust.render方法来渲染你的模板。 这里是一个例子:
-
在模板文件中写入以下代码并将其另存为sample.tl
<p>Hi {firstName} {lastName}</p>
-
通过命令行中的
dustc sample.tl
编译为sample.js或使用dust.compile("your_template_code", "template_name")
编译模板并将输出保存在JavaScript文件(sample.js)中,或者使用duster.js通过nodejs来观察和编译模板: https : //github.com/dmix/dusterjs -
在你的html中添加sample.js:
<script type="text/javascript" src="sample.js"></script>
这也将注册您的模板dust.cache。
-
在你的JavaScript中:
var your_json = {firstName:'James', lastName:'Smith'}; dust.render('sample', your_json, function(err, out){ your_dom_element.innerHTML = out; });
以上
dust.render
方法的结果将是<p>Hi James Smith</p>
所以你需要传递3个参数到
dust.render
:dust.render(template_name, json, callback)
正如wiki所说,你可以在客户端或服务器上使用灰尘。 如果你在客户端使用它,你应该得到模板(例如使用ajax请求),在浏览器中编译一个渲染器。 你将不得不在你的页面中包含灰尘脚本文件。
另一方面,您可以在服务器中使用灰尘(使用rhino或nodejs)。 在这种情况下,您将在服务器中编译和呈现模板,以便浏览器接收html。