From 8e1276c011b33b90af47494dc5e76baf86468a5a Mon Sep 17 00:00:00 2001 From: Francesco Pontillo Date: Sat, 31 Aug 2013 11:48:11 +0200 Subject: [PATCH] fix($compile): allow interpolations for non-event handlers attrs Fix wrong behaviour that didn't allow 'data-on' and 'on' element attributes to be interpolated by $compile. The regex now accepts any string beginning with 'on' and with at least one more English letter. --- src/ng/compile.js | 2 +- test/ng/compileSpec.js | 12 ++++++++++++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/src/ng/compile.js b/src/ng/compile.js index 040836f72dad..2aec8fcd07bb 100644 --- a/src/ng/compile.js +++ b/src/ng/compile.js @@ -159,7 +159,7 @@ function $CompileProvider($provide) { // Ref: http://developers.whatwg.org/webappapis.html#event-handler-idl-attributes // The assumption is that future DOM event attribute names will begin with // 'on' and be composed of only English letters. - var EVENT_HANDLER_ATTR_REGEXP = /^(on[a-z]*|formaction)$/; + var EVENT_HANDLER_ATTR_REGEXP = /^(on[a-z]+|formaction)$/; /** * @ngdoc function diff --git a/test/ng/compileSpec.js b/test/ng/compileSpec.js index 580d51c3b87b..6b3a04796604 100755 --- a/test/ng/compileSpec.js +++ b/test/ng/compileSpec.js @@ -3250,6 +3250,18 @@ describe('$compile', function() { $rootScope.$apply(); expect(element.attr('on-click')).toEqual('javascript:doSomething()'); })); + + it('should pass through arbitrary values on "on" and "data-on" attributes', inject(function($compile, $rootScope) { + element = $compile('