aboutsummaryrefslogtreecommitdiffstats
path: root/src/ng/directive/ngEventDirs.js
diff options
context:
space:
mode:
authorTobias Bosch2013-10-31 11:13:56 -0700
committerTobias Bosch2013-10-31 12:56:49 -0700
commit9a828738cd2e959bc2a198989e96c8e416d28b71 (patch)
treee555642081107bd15b079d31487af5bac54d480b /src/ng/directive/ngEventDirs.js
parent3d6a89e8888b14ae5cb5640464e12b7811853c7e (diff)
downloadangular.js-9a828738cd2e959bc2a198989e96c8e416d28b71.tar.bz2
fix(ngEventDirectives): parse expression only once during compile phase.
Diffstat (limited to 'src/ng/directive/ngEventDirs.js')
-rw-r--r--src/ng/directive/ngEventDirs.js18
1 files changed, 11 insertions, 7 deletions
diff --git a/src/ng/directive/ngEventDirs.js b/src/ng/directive/ngEventDirs.js
index bc4222e0..a76102c0 100644
--- a/src/ng/directive/ngEventDirs.js
+++ b/src/ng/directive/ngEventDirs.js
@@ -41,13 +41,17 @@ forEach(
function(name) {
var directiveName = directiveNormalize('ng-' + name);
ngEventDirectives[directiveName] = ['$parse', function($parse) {
- return function(scope, element, attr) {
- var fn = $parse(attr[directiveName]);
- element.on(lowercase(name), function(event) {
- scope.$apply(function() {
- fn(scope, {$event:event});
- });
- });
+ return {
+ compile: function($element, attr) {
+ var fn = $parse(attr[directiveName]);
+ return function(scope, element, attr) {
+ element.on(lowercase(name), function(event) {
+ scope.$apply(function() {
+ fn(scope, {$event:event});
+ });
+ });
+ };
+ }
};
}];
}