Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/449.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 一般角度ng重复和跟踪$index_Javascript_Angularjs_Angularjs Ng Repeat_Ng Repeat_Angularjs Track By - Fatal编程技术网

Javascript 一般角度ng重复和跟踪$index

Javascript 一般角度ng重复和跟踪$index,javascript,angularjs,angularjs-ng-repeat,ng-repeat,angularjs-track-by,Javascript,Angularjs,Angularjs Ng Repeat,Ng Repeat,Angularjs Track By,只是关于在ng repeat中使用track by$index的一般问题,我在文档中找不到解决方案 我有一个{{concert}},在它下面,我有一个数组,它动态地填充着音乐会的开始时间,就像这样,{{startTime[$index]}。但是,有些音乐会没有有效的开始时间,是否有办法确定该[$index]是否有开始时间,如果没有,请定义取代它的文本 我知道这是一种开放式的,我可以使用一个函数来比较音乐会数组和开始时间数组的长度,并用数据填充开始时间中的剩余字段,但我希望有更简单的方法?最佳实践

只是关于在ng repeat中使用track by$index的一般问题,我在文档中找不到解决方案

我有一个
{{concert}}
,在它下面,我有一个数组,它动态地填充着音乐会的开始时间,就像这样,
{{startTime[$index]}

。但是,有些音乐会没有有效的开始时间,是否有办法确定该
[$index]
是否有开始时间,如果没有,请定义取代它的文本

我知道这是一种开放式的,我可以使用一个函数来比较
音乐会
数组和
开始时间
数组的长度,并用数据填充
开始时间
中的剩余字段,但我希望有更简单的方法?最佳实践


谢谢你的建议

您可以使用一个角度过滤器,该过滤器将遍历并识别音乐会是否有开始时间,并将默认值设置为您想要的任何值


也许像上面这样的方法会奏效。我还没有测试过它。

不要将
$index
用于此任务
$index
不是数组中唯一项的索引;相反,它是
ng repeat
的迭代器偏移量。这意味着过滤器可能导致
$index
指向与预期不同的项目。
app.filter('startingTimeExists', () => {
  return (collection) => {
    let filtered = [];
    angular.forEach(collection, (concert) =>{
      if(concert.hasOwnProperty('startingTime')){
        filtered.push(concert);
      } else {
        concert.startingTime = "7:00PM"
        filtered.push(concert)
      }
    })
    return filtered;
  };
});