如何使用dustjs-linkedin作为客户端模板?

我得到了服务器端和客户端模板的想法,但是dust.js让我有些困惑。

为了将dust.js用于客户端模板,您需要三个步骤:

  1. complie模板
  2. 加载模板
  3. 呈现模板

对?

但模板从哪里来? 我看到了两种不同的方法:

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方法来渲染你的模板。 这里是一个例子:

  1. 在模板文件中写入以下代码并将其另存为sample.tl

     <p>Hi {firstName} {lastName}</p> 
  2. 通过命令行中的dustc sample.tl编译为sample.js或使用dust.compile("your_template_code", "template_name")编译模板并将输出保存在JavaScript文件(sample.js)中,或者使用duster.js通过nodejs来观察和编译模板: https : //github.com/dmix/dusterjs

  3. 在你的html中添加sample.js:

     <script type="text/javascript" src="sample.js"></script> 

    这也将注册您的模板dust.cache。

  4. 在你的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.renderdust.render(template_name, json, callback)

正如wiki所说,你可以在客户端或服务器上使用灰尘。 如果你在客户端使用它,你应该得到模板(例如使用ajax请求),在浏览器中编译一个渲染器。 你将不得不在你的页面中包含灰尘脚本文件。

另一方面,您可以在服务器中使用灰尘(使用rhino或nodejs)。 在这种情况下,您将在服务器中编译和呈现模板,以便浏览器接收html。