首先,我从服务器获取数据并设置为$scope.data
并使用它通过ng-repeat显示在表中。然后我继续从服务器获取数据,然后与旧的$scope.data
($scope.data=$scope.data.concat(newdata)
)=>联合Broswer将绘制一些新的新数据。
但是我不知道旧数据(ex $scope.data[0]
,而不是更改值)是否会重新绘制?你能让我知道吗。
答案 0 :(得分:0)
避免重新绘制'你必须使用'跟踪'
https://docs.angularjs.org/api/ng/directive/ngRepeat
为了最大限度地减少DOM元素的创建,ngRepeat使用一个函数来“跟踪”#34;集合中的所有项目及其相应的DOM元素。例如,如果项目被添加到集合中,则ngRepeat将知道所有其他项目已经具有DOM元素,并且不会重新呈现它们。
示例:
<div ng-repeat="n in [42, 42, 43, 43] track by $index">
{{n}}
</div>
如果使用对象,则可以使用字段(没有重复值)作为跟踪器
<div ng-repeat="model in collection track by model.id">
{{model.name}}
</div>
答案 1 :(得分:0)
你必须推动阵列
$scope.data.push.apply($scope.data,newdata);
请检查此代码以供参考
$scope.moreResultsBoats = function() {
$scope.pagIndex = $scope.pagIndex + 1;
Boat.query({pagIndex: $scope.pagIndex},
function success(result) {
console.log('Ejecuting callback. Result:' + result);
$scope.boats.push.apply($scope.boats, result);
}
);
};
答案 2 :(得分:0)
$scope.data[0]
数据不会因为您使用concat
以前的数据而改变,这些数据会保持相同的位置,之后会添加新数据
注意:新数据类型应该相同,然后才能正常工作。
例如:
$scope.data = [1,2,3]
newdata = [4,5,5];
$scope.data=$scope.data.concat(newdata);
输出
[1,2,3,4,5,5]