我试图在转发器中使用ng-if。这就是我要做的事情:
<li ng-repeat="timers in current.Timer | groupBy: 'day' | toArray:true | orderBy: '$key'" class="details-single-day" ng-click="editView('/edit')" ng-if="timers.$key==isToday()">
<span class="details-day-name">Day: {{timers.$key}}</span>
<bars timer="timers" day="timers.$key" title="Week"></bars>
</li>
isToday()函数今天以int:
返回$scope.isToday = () ->
return new Date().getDay()
基本上,如果$key
(从0到6)等于isToday()
结果,我想显示我的值。
如果没有ng-if
,我可以看到每天的所有细节,包括{{timer.day}}
为int。
但是使用ng-if,什么都没有显示。
任何帮助都将非常感激。感谢
答案 0 :(得分:0)
您似乎无法在同一元素上使用ng-repeat
和ng-if
。
我为你提供了一个小提琴:http://jsfiddle.net/bh83jc4b/2/
我建议使用普通的javascript(如小提琴)或自定义过滤器过滤你的数组。
$scope.filtered = $scope.current.Timer.filter(function (timers) {
return timers.$key === $scope.isToday();
});
<li ng-repeat="timers in filtered | groupBy: 'day' | toArray:true | orderBy: '$key'" class="details-single-day" ng-click="editView('/edit')">
<span class="details-day-name">Day: {{timers.$key}}</span>
<bars timer="timers" day="timers.$key" title="Week"></bars>
</li>
答案 1 :(得分:0)
我终于设法解决了这个问题,而且非常简单。
而不是:
<li ng-repeat="timers in current.Timer | groupBy: 'day' | toArray:true | orderBy: '$key'" class="details-single-day" ng-click="editView('/edit')" ng-if="timers.$key==isToday()">
<span class="details-day-name">Day: {{timers.$key}}</span>
<bars timer="timers" day="timers.$key" title="Week"></bars>
</li>
使用函数(isToday),我改为:
<li ng-repeat="timers in current.Timer | groupBy: 'day' | toArray:true | orderBy: '$key'" class="details-single-day" ng-click="editView('/edit')" ng-if="timers.$key == today">
<span class="details-day-name">Day: {{timers.$key}}</span>
<bars timer="timers" day="timers.$key" title="Week"></bars>
</li>
今天不再是一个功能:
$scope.today = new Date().getDay()
现在它完美无缺。感谢大家的帮助