diff options
| author | Misko Hevery | 2010-03-24 16:47:11 -0700 |
|---|---|---|
| committer | Misko Hevery | 2010-03-24 16:47:11 -0700 |
| commit | f29f6a47c4d81c5b8e365a3dae307159f1b12968 (patch) | |
| tree | 0f0c98e1a5effc60fc61c7908b4e6870c729c290 /src | |
| parent | 0c42eb9909d554807549cd3394e0ea0c715cc2d1 (diff) | |
| download | angular.js-f29f6a47c4d81c5b8e365a3dae307159f1b12968.tar.bz2 | |
fixed .value vs attr(value) access
Diffstat (limited to 'src')
| -rw-r--r-- | src/Angular.js | 1 | ||||
| -rw-r--r-- | src/jqLite.js | 7 | ||||
| -rw-r--r-- | src/widgets2.js | 27 |
3 files changed, 24 insertions, 11 deletions
diff --git a/src/Angular.js b/src/Angular.js index b76926b9..dc530921 100644 --- a/src/Angular.js +++ b/src/Angular.js @@ -44,7 +44,6 @@ function extensionList(angular, name) { } var consoleNode, msie, - VALUE = 'value', NOOP = 'noop', jQuery = window['jQuery'] || window['$'], // weirdness to make IE happy slice = Array.prototype.slice, diff --git a/src/jqLite.js b/src/jqLite.js index 2ac3f6c9..2132bfc1 100644 --- a/src/jqLite.js +++ b/src/jqLite.js @@ -179,6 +179,13 @@ JQLite.prototype = { return this[0].textContent; }, + val: function(value) { + if (isDefined(value)) { + this[0].value = value; + } + return this[0].value; + }, + html: function(value) { if (isDefined(value)) { this[0].innerHTML = value; diff --git a/src/widgets2.js b/src/widgets2.js index cee0e49e..5425b5a4 100644 --- a/src/widgets2.js +++ b/src/widgets2.js @@ -36,23 +36,22 @@ function domAccessor(element) { return value; } return { - get: function(){ - return validate(element.attr(VALUE)); - }, - set: function(value){ - element.attr(VALUE, validate(value)); - } + get: function(){ return validate(element.val()); }, + set: function(value){ element.val(validate(value)); } }; } var NG_ERROR = 'ng-error', NG_VALIDATION_ERROR = 'ng-validation-error', + TEXT_META = ['', 'keyup change'], INPUT_META = { - 'text': ["", 'keyup change'] -}; + 'text': TEXT_META, + 'textarea': TEXT_META, + 'hidden': TEXT_META, + 'password': TEXT_META + }; -angularWidget('INPUT', function input(element){ - var meta = INPUT_META[lowercase(element.attr('type'))]; +function inputWidget(meta) { return meta ? function(element) { var scope = scopeAccessor(this, element), dom = domAccessor(element); @@ -62,6 +61,14 @@ angularWidget('INPUT', function input(element){ }); this.$watch(scope.get, dom.set); } : 0; +} + +angularWidget('INPUT', function input(element){ + return inputWidget(INPUT_META[lowercase(element[0].type)]); +}); + +angularWidget('TEXTAREA', function(){ + return inputWidget(INPUT_META['text']); }); |
