Javascript 如何访问有序数组中的前一个ng repeat元素
我试图将ng重复中的前一个元素与当前元素进行比较。如果两个约会的日期字符串相同,我不希望打印出来。你可以看到我试图在ng if中阻止这种情况Javascript 如何访问有序数组中的前一个ng repeat元素,javascript,html,angularjs,Javascript,Html,Angularjs,我试图将ng重复中的前一个元素与当前元素进行比较。如果两个约会的日期字符串相同,我不希望打印出来。你可以看到我试图在ng if中阻止这种情况 <div ng-repeat="appointment in appointments | orderBy: 'milliSeconds' " ng-if="!noAppointments"> <div class="row row-date" ng-if="appointments[$index - 1]
<div ng-repeat="appointment in appointments | orderBy: 'milliSeconds' " ng-if="!noAppointments">
<div class="row row-date" ng-if="appointments[$index - 1].DateString != appointment.DateString">
<div class="col">
{{appointment.DateString}}
</div>
</div>
</div>
{{appointment.DateString}
但这并不奏效。你们对如何实现这一点有什么建议吗?我在控制器中对数组进行了排序,并将逻辑也移到了那里来解决这个问题。也许只需更改
“约会中的约会”| orderBy:“毫秒”track by$index”
但我不确定如何处理[$index-1]中的第一个值
将是[-1]
。无论如何,我认为这不是处理此类问题的正确方法,逻辑应该留在控制器中,而不是视图中。可能您应该事先在$scope.appointments
变量上使用foreach
来设置约会。显示vraiable并在ng if
中使用它,如果是,我可以添加if$index!=0,但这似乎不会导致问题。这有时是错误的。我认为这是因为orderBy实际上并没有改变数组的顺序,其中$index仍然是increments@Naigel我试图将逻辑转移到控制器,但遇到了问题。我会回去处理的