除了名称之外,如何访问模板中的属性?

时间:2012-08-17 00:09:36

标签: backbone.js underscore.js

在下划线模板中,除了名称之外,还有其他方法可以访问属性吗?我有一个名为“2a”的我不能直接引用它,因为它的第一个字符是数字。例如,这不起作用:

            <input type="checkbox" name="6a"  <%= 6a ? "checked" : "" %>>

谢谢!

1 个答案:

答案 0 :(得分:1)

除了重命名违规属性外,您还有其他一些选择。

下划线的_.template有一个variable选项:

  

默认情况下,模板会通过with语句将数据中的值放在本地范围内。但是,您可以使用变量设置指定单个变量名称。

所以你可以这样做:

<input type="checkbox" name="6a"  <%= v['6a'] ? "checked" : "" %>>

和此:

var t = _.template($('#whatever').html(), null, { variable: 'v' });
var h = t({ '6a': true });​

演示:http://jsfiddle.net/ambiguous/hBhfu/

您也可以在调用模板函数时手动换行:

t({ v: { '6a': true  }});

在这种情况下,您将使用与上述相同的模板。

演示:http://jsfiddle.net/ambiguous/8AZKw/