Observando alterações interna no valor de um array utilizando AngularJS

image_pdfimage_print

Um erro muito comum entre programadores que passam a utilizar o AngularJS, é numa necessidade de observar a mudança de valores interno de um array, cometerem o engano de observarem apenas variações na variável que contém o array.

Em geral, os iniciantes efetuam a observação de mudança de valores da seguinte forma:

var aDados = [
    {
        "id":1
        "nome":"Drall Consultoria"
    }
];

$scope.$watch( 'aDados', function(){});

Este modo, não irá verificar qualquer mudança interna nos valores do array. Para este tipo de comportamento, é necessário utilizar o terceiro parâmetro da função $watch.

var aDados = [
    {
        "id":1
        "nome":"Drall Consultoria"
    }
];

$scope.$watch( 'aDados', function(){},true);

Este é o modo AngularJS de utilizar a função $watch para observar mudanças internas/de valores em um array javascript. Ao se adicionar um novo valor no aDados, a function(){} será executada neste segundo exemplo, ao contrário do primeiro, que necessitaria de uma mudança da variável observada em si. Mudanças interna no array do primeiro exemplo não efetuam qualquer alteração na função.

Gostou? Tire um minutinho e dê sua contribuição para Drall Dev Community no Patreon!