From 4d06c220c3e69368731bb436d517f3507fb4f0ba Mon Sep 17 00:00:00 2001 From: yankee42 Date: Wed, 15 Apr 2015 22:11:42 +0200 Subject: [PATCH] docs(ngModel): use `arguments.length` instead of `angular.isDefined(newName)` to distinguish getter/setter usage --- src/ng/directive/ngModel.js | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) 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; } }; }]);