Thanks Luke. ng-change works for me as my changes to the object are form the ui view.
Disha On Sunday, March 16, 2014 12:48:47 AM UTC-7, Luke Kende wrote: > > Yep, you'd have to loop through to determine which was changed $watching > an array. (I don't think you want to $watch each object in array, bad > idea) Comparing objects isn't too difficult with angular.equals: > http://docs.angularjs.org/api/ng/function/angular.equals > > But, I have to ask what causes the change on the object that you need > watch? If it is from the ui view then you can put the call on the element > and move the function on the scope: > > < li ng-repeat="item in myArray"> > <input ng-model="item.name" ng-change="doSomethingWith('name',item)"> > </li> > > $scope. doSomethingWith(key, item){ > //now we know exactly what changed on the object and can do what we > need with it > console.log( 'item name is now ', item[key] ) > } > > See: http://docs.angularjs.org/api/ng/directive/ngChange > > On Friday, March 14, 2014 11:42:40 PM UTC-6, Disha Shah wrote: >> >> I am kinda new to Angular JS, and am trying to figure out a elegant >> solution to watch each object in a array for its property changes. >> I know the way to deep watch an array is by: >> >> $scope.$watch("collection",function( newValue, oldValue ) { >> /* do something*/ >> }, true ); >> >> But the newValue, oldValue doesn't give away exactly which object in the >> array has changed. >> Other way I can think of is to loop the array and set a watch on each object >> in the array. >> >> Is there a better solution to this? >> >> -- You received this message because you are subscribed to the Google Groups "AngularJS" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at http://groups.google.com/group/angular. For more options, visit https://groups.google.com/d/optout.
