2012-08-17 52 views
1

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

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

谢谢!

回答

1

除重命名违规属性之外,还有其他几个选项。

下划线的_.templatevariable选项:

默认情况下,模板通过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/