Autocomplete inpud is not detected by $watch angularjs <p>I have a form of addresses which has one input autocomplete from googleMaps. When I select an address, the rest of inputs aumatically is filled. Two of this form are latitude and longitude.</p> <p>I want that when I put an address, the service $watch detect this values and refresh the map.</p> <p>Note: The services $watch detect values if I write in that field, but I want to write address and take this values.</p> <p>My code form addresses:</p> <pre><code> &lt;input vs-google-autocomplete="{ types: ['address'] }" vs-autocomplete-validator="vs-street-address" ng-model="streetNumber[a.count].name" vs-place="streetNumber[a.count].place" vs-place-id="streetNumber[a.count].components.placeId" vs-street-number="streetNumber[a.count].components.streetNumber" vs-street="streetNumber[a.count].components.street" vs-city="streetNumber[a.count].components.city" vs-state="streetNumber[a.count].components.state" vs-country-short="streetNumber[a.count].components.countryCode" vs-country="streetNumber[a.count].components.country" vs-post-code="streetNumber[a.count].components.postCode" vs-latitude="streetNumber[a.count].components.location.lat" vs-longitude="streetNumber[a.count].components.location.long" type="text" name="streetNumber" id="streetNumber" class="form-control" placeholder="Enter full address (street number, street, ...)"&gt; &lt;input type="text" id="user_address_{{ ::address.count }}_latitude" name="user[address][{{ ::address.count }}][latitude]" value="{{streetNumber[a.count].components.location.lat}}" ng-model="latitude" class="form-control"&gt; &lt;input type="text" id="user_address_{{ ::address.count }}_longitude" name="user[address][{{ ::address.count }}][longitude]" ng-model="longitude" value="{{streetNumber[a.count].components.location.long}}" class="form-control"&gt; &lt;ui-gmap-google-map center='map.center' zoom='map.zoom'&gt;&lt;/ui-gmap-google-map&gt; </code></pre> <p>AngularJS:</p> <pre><code>app.controller("testCtrl",function ($scope) { $scope.map = { center: { latitude: 40.37464, longitude: -3.7319700000000466 }, zoom: 16 }; $scope.address = { count: -1 }; $scope.$watch('longitude', function(newLongitude) { alert('newLongitude'); }, true); $scope.$watch('latitude', function(newLatitude) { if (!angular.isUndefined(newLatitude)){ $scope.map['center']['latitude'] = newLatitude; } }, true); }); </code></pre>