Javascript 在更新AngularJS时仅更改元素

Javascript 在更新AngularJS时仅更改元素,javascript,angularjs,Javascript,Angularjs,我有一个对象数组,可以根据返回API的数据进行更改,我只想更改更改的元素,而不需要重新加载整个ng repeat 编辑(试图解释我): 当数据发生变化时,AngularJS会重新创建整个DOM,删除所有元素并再次创建它,我希望保留未发生变化的元素并重新加载新的元素 下面是我如何显示数据的: <div class="row" id="main"> <div class="col-xs-12 col-sm-6 col-md-3 col-lg-2 block ani

我有一个对象数组,可以根据返回API的数据进行更改,我只想更改更改的元素,而不需要重新加载整个ng repeat

编辑(试图解释我): 当数据发生变化时,AngularJS会重新创建整个DOM,删除所有元素并再次创建它,我希望保留未发生变化的元素并重新加载新的元素

下面是我如何显示数据的:

   <div class="row" id="main">
      <div class="col-xs-12 col-sm-6 col-md-3 col-lg-2 block animate" ng-repeat="build in build | limitTo:totalDisplayed | orderBy:'lastBuildDetails.startDate' : true track by build._id" ng-class="{'running': project.running ,'block-green': build._status ==='SUCCESS','block-red': build._status==='FAILURE'}" id="{{build._id}}" progressive-loading="">
        <div class="title-container animate">
          <p>{{build._buildTypeId}}</p> 
        </div>
        <div class="update-container animate col-xs-12">
          <time class="time">{{build.buildDate | date : 'dd.MM.yyyy H:mm:s'}} </time>
        </div>
      </div>
    </div>
下面是API中不同元素响应的示例:

     $scope.build = [
    { _id:11, _status:'SUCCESS', lastBuildDetails:{startDate:1}, _buildTypeId:11},
    { _id:2, _status:'FAILED', lastBuildDetails:{startDate:1}, _buildTypeId:2},
    { _id:13, _status:'SUCCESS', lastBuildDetails:{startDate:9}, _buildTypeId:13},
    { _id:4, _status:'SUCCESS', lastBuildDetails:{startDate:8}, _buildTypeId:4},
    { _id:15, _status:'FAILED', lastBuildDetails:{startDate:1}, _buildTypeId:15},
    { _id:6, _status:'SUCCESS', lastBuildDetails:{startDate:6}, _buildTypeId:6},
    { _id:17, _status:'SUCCESS', lastBuildDetails:{startDate:5}, _buildTypeId:17},
    { _id:8, _status:'FAILED', lastBuildDetails:{startDate:4}, _buildTypeId:8},
    { _id:19, _status:'SUCCESS', lastBuildDetails:{startDate:3}, _buildTypeId:19},
    { _id:20, _status:'FAILED', lastBuildDetails:{startDate:2}, _buildTypeId:10}
    ];

对不起,我的英语不好,如果您不懂我的意思或需要更多信息,请告诉我。

您所说的“我只想更改更改的元素”到底是什么意思你想改变什么?你是说,更新视图?更新ng repeat有什么问题?正如你在两个数组中看到的,当数据更改时,某些位置有不同的值,而其他位置没有,AngularJS重新创建整个DOM删除所有元素并再次创建它,我想保留未更改的元素,然后重新加载新的元素。嗯,我不确定这一个。也许可以将
$scope.$watch
和调用API的超时结合起来使用。请看这里:
     $scope.build = [
    { _id:11, _status:'SUCCESS', lastBuildDetails:{startDate:1}, _buildTypeId:11},
    { _id:2, _status:'FAILED', lastBuildDetails:{startDate:1}, _buildTypeId:2},
    { _id:13, _status:'SUCCESS', lastBuildDetails:{startDate:9}, _buildTypeId:13},
    { _id:4, _status:'SUCCESS', lastBuildDetails:{startDate:8}, _buildTypeId:4},
    { _id:15, _status:'FAILED', lastBuildDetails:{startDate:1}, _buildTypeId:15},
    { _id:6, _status:'SUCCESS', lastBuildDetails:{startDate:6}, _buildTypeId:6},
    { _id:17, _status:'SUCCESS', lastBuildDetails:{startDate:5}, _buildTypeId:17},
    { _id:8, _status:'FAILED', lastBuildDetails:{startDate:4}, _buildTypeId:8},
    { _id:19, _status:'SUCCESS', lastBuildDetails:{startDate:3}, _buildTypeId:19},
    { _id:20, _status:'FAILED', lastBuildDetails:{startDate:2}, _buildTypeId:10}
    ];