AngularJS- ng-repeat 中的项目不会在变量更新时更新
AngularJS- Items within ng-repeat not updating on variable update
我有一个名为 altSegments 的数组,基于 $scope.firstSeg 或 $scope.lastSeg,我想显示同一数组的不同部分。在大多数情况下,我一起更改 altSegments 数组,它更新得很好,但是当我从同一个 altSegments 数组转到同一个数组但更改 $scope.firstSeg 和 $scope.lastSeg 时,它没有正确更新。
我怀疑这与未更改的 altSegments 有关,因此 AngularJS 决定再次检查代码并重新显示是不值得的。我该如何解决这个问题?
<li ng-repeat="altseg in altSegments">
<!-- For multiflight home to first -->
<div ng-show="{{firstSeg}}" ng-repeat="flights in altseg.segment_details_1.leg_details">
<p class="small dark">
<strong>Flight:</strong> {{flights.Carrier}} {{ flights.FlightNumber}}
</p>
<p class="small dark">
<strong>Departure:</strong> {{flights.OriginName}} | {{flights.DepartureTime | splitDT }}
</p>
<p class="small dark">
<strong>Arrival:</strong> {{flights.DestinationName}} | {{flights.ArrivalTime | splitDT }}
</p>
</div>
<!-- For multiflight last to home -->
<div ng-show="{{lastSeg}}" ng-repeat="flights in altseg.segment_details_2.leg_details">
<p class="small dark">
<strong>Flight:</strong> {{flights.Carrier}} {{ flights.FlightNumber}}
</p>
<p class="small dark">
<strong>Departure:</strong> {{flights.OriginName}} | {{flights.DepartureTime | splitDT }}
</p>
<p class="small dark">
<strong>Arrival:</strong> {{flights.DestinationName}} | {{flights.ArrivalTime | splitDT }}
</p>
</div>
ng-show
是一个 angular 指令并评估 angular 代码;
因此;你不需要:ng-show="{{firstSeg}}"
替换为:ng-show="firstSeg"
在此处查看 ng-show 的完整文档:https://docs.angularjs.org/api/ng/directive/ngShow
看起来您正在使用 ng-show="{{firstSeg}}"
这应该是 ng-show="firstSeg"
..
如果还是不行,
尝试在 $scope.apply() ...
中从控制器端更新数据
例如:-
$scope.apply(function(){
list = updated_list; // put your updation of list here
});
我有一个名为 altSegments 的数组,基于 $scope.firstSeg 或 $scope.lastSeg,我想显示同一数组的不同部分。在大多数情况下,我一起更改 altSegments 数组,它更新得很好,但是当我从同一个 altSegments 数组转到同一个数组但更改 $scope.firstSeg 和 $scope.lastSeg 时,它没有正确更新。
我怀疑这与未更改的 altSegments 有关,因此 AngularJS 决定再次检查代码并重新显示是不值得的。我该如何解决这个问题?
<li ng-repeat="altseg in altSegments">
<!-- For multiflight home to first -->
<div ng-show="{{firstSeg}}" ng-repeat="flights in altseg.segment_details_1.leg_details">
<p class="small dark">
<strong>Flight:</strong> {{flights.Carrier}} {{ flights.FlightNumber}}
</p>
<p class="small dark">
<strong>Departure:</strong> {{flights.OriginName}} | {{flights.DepartureTime | splitDT }}
</p>
<p class="small dark">
<strong>Arrival:</strong> {{flights.DestinationName}} | {{flights.ArrivalTime | splitDT }}
</p>
</div>
<!-- For multiflight last to home -->
<div ng-show="{{lastSeg}}" ng-repeat="flights in altseg.segment_details_2.leg_details">
<p class="small dark">
<strong>Flight:</strong> {{flights.Carrier}} {{ flights.FlightNumber}}
</p>
<p class="small dark">
<strong>Departure:</strong> {{flights.OriginName}} | {{flights.DepartureTime | splitDT }}
</p>
<p class="small dark">
<strong>Arrival:</strong> {{flights.DestinationName}} | {{flights.ArrivalTime | splitDT }}
</p>
</div>
ng-show
是一个 angular 指令并评估 angular 代码;
因此;你不需要:ng-show="{{firstSeg}}"
替换为:ng-show="firstSeg"
在此处查看 ng-show 的完整文档:https://docs.angularjs.org/api/ng/directive/ngShow
看起来您正在使用 ng-show="{{firstSeg}}"
这应该是 ng-show="firstSeg"
..
如果还是不行, 尝试在 $scope.apply() ...
中从控制器端更新数据例如:-
$scope.apply(function(){
list = updated_list; // put your updation of list here
});