Usando a função $apply do AngularJS

Esta publicação serve como documentação para quem está fazendo um treinamento de AngularJS. A ideia é explicar para que serve a função $apply.

Digamos que você esteja utilizando uma função Javascript ou de alguma outra biblioteca Javascript no qual esteja fora do $scope do Angular. Imagina o cenário abaixo

setInterval(function(){
$scope.$apply(function(){
$scope.numero++;

})

})

SetInterval não foi informado como função na chamada do controller e com isto o $scope não consegue acompanhar as mudanças ocorridas neste controller. Para forçar o Angular a acompanhar estas mudanças utilizamos a função $apply.

 

Fix Angular error: ngRepeat:dupes Duplicate Key in Repeater

Duplicates in a repeater are not allowed. Use 'track by' expression to specify unique keys. Repeater: thing in mynotes, Duplicate key: string:xxxxx, Duplicate value: xxxxx

Um exemplo aplicado no Ionic com uma estrutura de repetição ng-repeat você pode adicionar track by $index

<ion-item ng-repeat=”thing in mynotes track by $index”>
{{thing}}
<ion-option-button style=”width:200px;background:#ff0000;” class=”button-assertive ion-trash-b” ng-click=”remove(thing)”></ion-option-button>
</ion-item>