9

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

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

  1. 遵守模板
  2. 加载模板
  3. 渲染模板

对?

但是模板从何而来?我看到了两种不同的方法:

 1. <script> template <script>
 2. <div> template </div>

...它们都在 DOM 中。哪个是对的?

我还注意到您可以通过 ajax 加载模板,因此模板不会在 DOM 中看到,但我不知道该怎么做。

另外,我目前正在使用玉作为快速视图引擎。是否需要切换到dust.js?有什么好处?

4

2 回答 2

12

这是 LinkedIn Dust JS wiki 页面,可以回答您的问题并有很好的示例: http: //linkedin.github.com/dustjs/

但是在这里回答你的问题:

是的,你需要编译你的dust模板,它变成一个JavaScript文件,你可以通过<script>标签添加到你的页面,然后调用dust.render方法来渲染你的模板。这是一个例子:

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

    <p>Hi {firstName} {lastName}</p>
    
  2. dustc sample.tl通过在命令行中将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)

于 2012-12-13T06:48:50.110 回答
0

正如 wiki 所说,您可以在客户端或服务器中使用灰尘。如果您在客户端使用它,您应该获得模板(例如使用 ajax 请求),在浏览器中将其编译为渲染。您必须在页面中包含灰尘脚本文件。

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

于 2012-12-06T14:33:41.807 回答