This is a sign of an unofficial golden rule violation when using ng-model:
Always is "." in ng-model expression
If you do not have a point in the ng-model expression, it will create a property in the current area at the point where the element with ng-model is located. This is often not the area you expect, since many directives create child areas, including the modal directive from UI Bootstrap.
Including a point, you refer to an object that will be viewed in the chain of prototypes (areas), and then will have access to or create a property on it that will be in the correct area.
, , , $scope.data ng-model data.rdd, "" .
, :
$scope.data = {
rdd: 'me'
};
$scope.$watch('data.rdd', function(v, old){
if(v!==undefined && v !== old)
alert(v);
});
HTML :
<input type="radio" ng-model="data.rdd" value="me">me
<input type="radio" ng-model="data.rdd" value="you">you
I Plunkr, .