如何在本地环境中使用Dust.js的帮助程序?

时间:2015-02-13 01:43:23

标签: javascript helpers dust.js

我正在使用linkedIn fork(2.5.1)中的dust-full.js进行编程。我正在尝试使用帮助器进行条件限制,但我似乎无法让它工作。现在,我正在使用我的本地机器(我目前无意包含服务器后端,但它可能是这个项目的用武之地)。我目前在我的Dropbox公共文件夹上测试我的代码。所有非帮助代码都有效。

有问题的代码:

    {?quote temp="4"}
        Once you have chosen the best answer{@if cond="{temp} > 1"}s{/if}, please select the "Submit" button.
    {:else}
        Choose the best answer{@if cond="{temp} > 1"}s{/if}, then select the "Submit" button.
    {/quote}

我之前添加了dust-full.js发行版和帮助程序,如下所示:

<script src="script/dust-full.js" type="text/javascript"></script>
<script src="script/dust-helpers.min.js" type="text/javascript"></script>

我在其他线程和尘埃.js tutorial中看到,需要“需要”帮助者。使用这样的代码:

var dust = require('dustjs-linkedin');
dust.helper = require('dustjs-helpers');

但是,当我包含它时,我收到控制台错误:“ReferenceError:require未定义。”我假设这是因为“require”通常在node.js中使用/包含,但老实说我不知道​​。我不想包含node.js,因为我不知道它,我对学习其他库不感兴趣。但是,我不知道如何评估助手。

我有四个问题:

  1. 我提供的代码中是否有明显的错误?
  2. 只有在使用服务器端脚本时才能使用dust.js帮助程序吗?
  3. (假设2的答案是“否”)辅助工具只能用于dust-full.js和dust-helpers.js?
  4. (假设3的答案是“否”)如何仅使用客户端脚本来使用帮助程序?

1 个答案:

答案 0 :(得分:1)

使用require加载帮助程序是针对像Node这样的服务器环境。您应该能够完成加载帮助程序所做的工作 - 只需在主要灰尘脚本之后包含它们,它们就会自动添加到dust对象中。

你所做的一切看起来是正确的,那么你是否可能使用了错误的路径来处理你的尘埃助手Javascript文件?

以下是显示{@gt}帮助程序工作的代码段。 ({@if}助手已弃用,因此您在使用时会在控制台中收到警告 - 但{@gt}完全符合您的要求。)

<div id="output"></div>

<script src="https://cdnjs.cloudflare.com/ajax/libs/dustjs-linkedin/2.5.1/dust-full.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/dustjs-helpers/1.5.0/dust-helpers.min.js"></script>
<script>
  var tmpl = dust.compile('Hello World! Choose the best answer{@gt key=temp value=1}s{/gt}', "test"),
      context = { "temp": 4 };
  dust.loadSource(tmpl);
  dust.render("test", context, function(err, out) {
    document.getElementById("output").textContent = out;
  });
</script>