diff options
| author | Misko Hevery | 2010-12-10 13:55:18 -0800 |
|---|---|---|
| committer | Igor Minar | 2011-01-07 14:39:46 -0800 |
| commit | 47c454a315b6c0260c8f65e70ae9b30f924650df (patch) | |
| tree | 3392daf6242d540a6f3d7bb08ef4914aa46c667e /src/directives.js | |
| parent | 16086aa37c5c0c98f5c4a42d2a15136bb6d18605 (diff) | |
| download | angular.js-47c454a315b6c0260c8f65e70ae9b30f924650df.tar.bz2 | |
change to keydown from keyup; add delayed $updateView
- There was a perceived lag when typing do to the fact that we were
listening on the keyup event instead of keydown. The issue with
keydown is that we can not read the value of the input field. To
solve this we schedule a defer call and perform the model update
then.
- To prevent calling $eval on root scope too many times as well as to
prevent drowning the browser with too many updates we now call the
$eval only after 25ms and any additional requests get ignored. The
new update service is called $updateView
Diffstat (limited to 'src/directives.js')
| -rw-r--r-- | src/directives.js | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/src/directives.js b/src/directives.js index d40d6120..bf215cc8 100644 --- a/src/directives.js +++ b/src/directives.js @@ -423,14 +423,14 @@ angularDirective("ng:bind-attr", function(expression){ * TODO: maybe we should consider allowing users to control event propagation in the future. */ angularDirective("ng:click", function(expression, element){ - return function(element){ + return injectUpdateView(function($updateView, element){ var self = this; element.bind('click', function(event){ self.$tryEval(expression, element); - self.$root.$eval(); + $updateView(); event.stopPropagation(); }); - }; + }); }); @@ -471,14 +471,14 @@ angularDirective("ng:click", function(expression, element){ * server and reloading the current page). */ angularDirective("ng:submit", function(expression, element) { - return function(element) { + return injectUpdateView(function($updateView, element) { var self = this; element.bind('submit', function(event) { self.$tryEval(expression, element); - self.$root.$eval(); + $updateView(); event.preventDefault(); }); - }; + }); }); |
