使用铆钉访问数组索引.js

Accessing array index with Rivets.js

本文关键字:数组 索引 js 访问      更新时间:2023-09-26

我想知道为什么访问绑定在铆钉中的数组的索引.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 个元素。

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

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