1

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

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

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

谢谢你的建议!

4

1 回答 1

2

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

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

也许像上面这样的东西会起作用。我没有测试过。

于 2015-12-08T22:03:18.057 回答