fix(ngEventDirectives): parse expression only once during compile phase.

This commit is contained in:
Tobias Bosch 2013-10-31 11:13:56 -07:00
parent 3d6a89e888
commit 9a828738cd

View file

@ -41,13 +41,17 @@ forEach(
function(name) { function(name) {
var directiveName = directiveNormalize('ng-' + name); var directiveName = directiveNormalize('ng-' + name);
ngEventDirectives[directiveName] = ['$parse', function($parse) { ngEventDirectives[directiveName] = ['$parse', function($parse) {
return function(scope, element, attr) { return {
var fn = $parse(attr[directiveName]); compile: function($element, attr) {
element.on(lowercase(name), function(event) { var fn = $parse(attr[directiveName]);
scope.$apply(function() { return function(scope, element, attr) {
fn(scope, {$event:event}); element.on(lowercase(name), function(event) {
}); scope.$apply(function() {
}); fn(scope, {$event:event});
});
});
};
}
}; };
}]; }];
} }