一般 angular ng-repeat 并按 $index 跟踪

General angular ng-repeat and track by $index

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

我有一个 <div ng-repeat="concert in concerts track by $index">{{concert}}</div>,在它下面,我有一个数组,它动态填充了音乐会的开始时间,就像这样 <p>{{startTime[$index]}}</p>。然而,有些音乐会没有有效的开始时间,有没有办法确定是否有开始时间 [$index],如果没有,定义取代它的文本?

我知道这是一种开放式的,&我可以使用一个函数来比较 concerts 数组和 startTimes 数组的长度,并填充 startTimes 中的剩余字段有数据,但我希望有更简单的方法?最佳做法?

感谢您的建议!

您可以使用一个 angular 过滤器来确定音乐会是否有开始时间并将默认值设置为您想要的任何值

https://docs.angularjs.org/api/ng/filter/filter

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;
  };
});

也许像上面这样的东西会奏效。我没有测试过。