2017-02-20 2 views
0

Я написал такой код:

$http.post('/getUserInfo', Obj) 

      .then(function(response) { 
       //console.log(response.data); 
       $scope.items = response.data; 
      }); 

Данные, полученные в ответ устанавливается в $ scope.items. Если я снова запустил этот код, изменит ли он весь $ scope.items или будет наблюдать только изменение между новым и старым значениями $ scope.items?

Предположим, что response.data содержит огромное количество данных.

+4

Да, это изменит весь '$ scope.items' – Satpal

+0

Как я могу переопределить эту вещь? Любая идея .. – gauravmehla

+0

Почему вы используете 'post' для получения данных? попробуйте использовать get и кешировать свой ответ –

ответ

0

Предполагая, что вы обеспокоены тем, что вы итерацию над данными с ng-repeat, что вам нужно сделать, это использовать track by в параметре ng-repeat указать какое-либо условие, которое покажет Угловое, что конкретный элемент не изменяется. Затем он будет соответствовать этому элементу с элементом из старого массива и не будет восстанавливать html для элемента.

<div ng-repeat="item in items track by item.uniqueid"> 
    ... content here ... 
</div> 

и убедитесь, что атрибут uniqueid остается неизменным, когда данные остаются теми же, но изменения, если содержание элемента обновляется. Например, вы можете объединить идентификатор пользователя с датой и временем последнего обновления, чтобы обеспечить подходящее уникальное значение.

Смежные вопросы