I am not able to watch the work when it is placed on an element within an array;
See the example: http://jsfiddle.net/zwrza551/2/
<div ng-app>
<div ng-controller="Test">
Name: <input type="text" ng-model="customer.name" />
<hr/>
<div ng-repeat="address in customer.addresses">
<input type="text" ng-model="address.name" />
<input type="text" ng-model="address.zipcode" />
<hr />
</div>
</div>
</div>
function Test($scope){
$scope.customer = {
name: 'Customer 1',
addresses: [
{ name: 'Address 1', zipcode: 123456, city: null, state: null },
{ name: 'Address 2', zipcode: 234567, city: null, state: null },
{ name: 'Address 3', zipcode: 456787, city: null, state: null },
{ name: 'Address 4', zipcode: 675684, city: null, state: null }
]
};
$scope.$watch('customer.name', function(newName, oldName){
console.log(newName);
});
$scope.$watch('address.zipcode', function(newCode, oldCode){
console.log(newCode);
//Make request to webservice, get addres for zipcode set city and state from this address.
});
}
On name of the client I can, since the array of addresses does not work.