如何在本地环境中使用带有Dust.js的助手

How do I use helpers with Dust.js on a local environment?

本文关键字:Dust js 环境      更新时间:2023-10-07

我正在使用linkedIn fork(2.5.1)中的dustfull.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}

我之前已经添加了dustfull.js分发和类似的助手:

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

我在其他线程和dust.js教程中看到,需要"需要"助手。使用这样的代码:

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

然而,当我包含它时,我会得到控制台错误:"ReferenceError:require未定义。"我认为这是因为node.js中通常使用/包含"require",但我真的不知道。我宁愿不包括node.js,因为我不知道它,而且我对学习其他库不感兴趣。然而,我不知道如何评估助手。

我有四个问题:

  1. 我提供的代码中有明显的错误吗
  2. 是否只有在使用服务器端脚本时才能使用dust.js助手
  3. (假设2的答案是"否")helpers只能与dustfull.js和dusthelpers.js一起使用吗
  4. (假设3的答案是"否")如何仅使用客户端脚本来使用助手

使用require加载帮助程序适用于Node这样的服务器环境。您应该能够完全按照您所做的加载辅助对象的操作——只需将它们包含在主dust脚本之后,它们就会自动添加到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>