使用Rivets.js访问数组索引

时间:2016-02-10 20:17:13

标签: javascript html arrays templating rivets.js

我想知道为什么访问在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个元素。

铆钉在哪里记录了这种行为?这是在模板引擎中访问数组元素的标准方法吗?我无法在任何地方找到它,这真的很困扰我。

1 个答案:

答案 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>