一般角度ng-repeat和跟踪$ index

时间:2015-12-08 21:49:03

标签: javascript angularjs angularjs-ng-repeat ng-repeat angularjs-track-by

关于在ng-repeat中使用$ index跟踪的一般问题,我无法在文档中找到解决方案...

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

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

感谢您的建议!

1 个答案:

答案 0 :(得分: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;
  };
});

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