Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/371.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何访问有序数组中的前一个ng repeat元素_Javascript_Html_Angularjs - Fatal编程技术网

Javascript 如何访问有序数组中的前一个ng repeat元素

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]

我试图将ng重复中的前一个元素与当前元素进行比较。如果两个约会的日期字符串相同,我不希望打印出来。你可以看到我试图在ng if中阻止这种情况

<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我试图将逻辑转移到控制器,但遇到了问题。我会回去处理的