我想知道为什么访问在rivets.js中绑定的数组的索引可以使用。运算符而不是[]的标准访问方式。
例如
让我们说我们绑定
var binding = {name: "binding", arr: [0,1,2]}
rivets.bind(document, {binding: binding});
然后在我们的HTML中,如果我们这样做,它将无法正常工作
<span> {binding.arr[0]}</span>
但如果我们这样做
<span> {binding.arr.0}</span>
成功访问了数组的第0个元素。
铆钉在哪里记录了这种行为?这是在模板引擎中访问数组元素的标准方法吗?我无法在任何地方找到它,这真的很困扰我。
答案 0 :(得分:3)
<span> {binding.arr.0}</span>
有效,因为数组是对象。因此它的工作方式与其他对象与.
运算符相同(返回obj[key]
)。
理想情况下,在使用数组时,您应该使用rv-each
。
出于某种原因,如果您必须访问特定索引处的项目并且<span> {binding.arr.0}</span>
看起来令人困惑或不可读,我建议创建一个格式化程序:
rivets.formatters.itemat = function(value,index){
if(!(value && value instanceof Array))
return null; // throw some error if required
return value[index || 0];
}
可以像
一样使用<span> {binding.arr | itemat 0}</span>