将变量传递给车把助手调用

Cha*_*son 4 javascript templating handlebars.js

我想将模板数据传递给我定义的"textfield"辅助方法,如下所示:

{{textfield label="{{label}}"
            id="account_{{attributes.id}}"
            name="account[{{attributes.name}}]"
            class="some-class"
            required="true"}}
Run Code Online (Sandbox Code Playgroud)

(注意{{textfield}}帮助程序调用中的{{label}}和{{attributes.id}}引用)

这是我设置模板的地方:

data = {
  "attributes": {
    "id": "name",
    "name": "name"
  },
  "label": "Name"
}
var templateHtml = 'markup here';
var template = Handlebars.compile(templateHtml);
var formHtml = template(data);
Run Code Online (Sandbox Code Playgroud)

这是一个jsFiddle.

当我运行它时,我仍然在编译的标记中看到{{placeholders}}.

我怎么能做到这一点?

pif*_*tic 8

您使用不正确的语法将命名参数传递给您的把手助手.你想要的是这样的:

var data = {
  "attributes": {
    "name": "name"
  }
}
var templateHtml = '{{textfield name=attributes.name}}';
var template = Handlebars.compile(templateHtml);
var formHtml = template(data);
Run Code Online (Sandbox Code Playgroud)

还有一个更新的小提琴:http://jsfiddle.net/3yWn9/1/