Я связываю массив в моем сервисе с локальной областью действия в controller (передача по ссылке):
myApp.controller('TheController', function($scope, theService){
$scope.theArray = theService.array;
})
в службе :
//...
theService.array = [];
$http.get('/array').then(function(data){
theService.array = angular.extends(theService.array, data);// here I'm updating theService.array with new values;
})
Проблема с этой привязкой заключается в том, что я не могу разорвать ссылку на исходный массив. поэтому мне нужно сделать какую-то дополнительную функцию, чтобы определить разницу между новым и старым массивом.
Обходным путем будет каждый раз инициализировать массив и возвращать функцию в моем сервисе :
$http.get('/array').then(function(data){
theService.array = data;
})
theService.getArray = function(){
return theService.array;
};
в контроллере это будет:
myApp.controller('TheController', function($scope, theService){
$scope.theArray = theService.getArray;
})
по моему html (и вот в чем вопрос) у меня будет:
<div ng-repeat="data in theArray()">....</div>
вместо <div ng-repeat="data in theArray ">....</div>
Есть ли проблемы с производительностью в ng-repeat?