在Handlebars中使用@key获取Backbone模型属性

时间:2014-02-12 14:15:47

标签: backbone.js handlebars.js

我想在Handlebar模板中获取Backbone模型属性 我将data传递给车把模板,这只是一个Backbone模型 下面是我正在使用的车把模板

<table class="basic">
<thead>
<th>Name</th>
<th>Value</th>
<th>Unit</th>
<th>Description</th>
</thead>
<form>
<tbody>
 {{#each sections}}
  {{#each this.entries}}
        <tr><td>{{this.name}}</td><td><input type="name" name={{@key}}/> value={{data.[@key]}} /></td><td>{{this.units}}</td><td>{{this.descrip}}</td></tr>
   {{/each}}
 {{/each}}
<tr>
 <td></td><td class="button" colspan="4"><button id="update">{{$ 'Update'}}</button></td>
</tr>
</tbody>
</form>
</table>

现在,我想在data模型中将某些属性的值显示到我当前正在尝试data.[@key]但尚未正常工作的输入字段中。

有谁能告诉我使用这个@key获取骨干模型属性的正确方法是什么?

**更新* *

现在我注意到的另一件事是,如果我在每个循环中使用 {{data.any_property}} ,那么它会显示我正确的值。 但是如果我在每个循环中使用 {{data.any_property}} ,它就不会给我正确的价值。

有人能告诉我为什么会这样吗?

**编辑* *

我现在已发布完整模板。 以下是我的 templateHelpers 功能

templateHelpers: function(){
      helpers = {};
      helpers.sections = this.sections;
      helpers.data = this.model.toJSON();
      return helpers;
    },

下面是我想通过把手呈现的json

{
    "sections": [{
        "entries": {
            "any-key1": {
                "name": "Name",
                "units": "%",
                "descrip": "desc"
            },
            "any-key2": {
                "name": "Name",
                "units": "%",
                "descrip": "desc"
            },
            "any-key3": {
                "name": "Name",
                "units": "%",
                "descrip": "desc"
            },
        },
        "name": "Entry name",
        "description": "Entry description."
    }, {
        "entries": {
            "any-key1": {
                "name": "Name",
                "units": "%",
                "descrip": "desc"
            },
            "any-key2": {
                "name": "Name",
                "units": "%",
                "descrip": "desc"
            },
            "any-key3": {
                "name": "Name",
                "units": "%",
                "descrip": "desc"
            },
        },
        "name": "Entry Name",
        "description": "Entry Description."
    }]
}

0 个答案:

没有答案