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 
});