diff --git a/src/ng/directive/ngModel.js b/src/ng/directive/ngModel.js index 5ed23fdec422..e6e8220d7eb0 100644 --- a/src/ng/directive/ngModel.js +++ b/src/ng/directive/ngModel.js @@ -1205,7 +1205,11 @@ var DEFAULT_REGEXP = /(\s+|^)default(\s+|$)/; var _name = 'Brian'; $scope.user = { name: function(newName) { - return angular.isDefined(newName) ? (_name = newName) : _name; + // Note that newName can be undefined for two reasons: + // 1. Because it is called as a getter and thus called with no arguments + // 2. Because the property should actually be set to undefined. This happens e.g. if the + // input is invalid + return arguments.length ? (_name = newName) : _name; } }; }]);