diff --git a/docs/content/guide/directive.ngdoc b/docs/content/guide/directive.ngdoc index 09f46420b..39c307402 100644 --- a/docs/content/guide/directive.ngdoc +++ b/docs/content/guide/directive.ngdoc @@ -172,15 +172,6 @@ For example, we could fix the example above by instead writing: ``` -If one wants to modify a camelcased attribute (SVG elements have valid camelcased attributes), such as `viewBox` on the `svg` element, one can use underscores to denote that the attribute to bind to is naturally camelcased. - -For example, to bind to `viewBox`, we can write: - -```html - - -``` - ## Creating Directives diff --git a/src/ng/compile.js b/src/ng/compile.js index 21dc09f40..7254dab9f 100644 --- a/src/ng/compile.js +++ b/src/ng/compile.js @@ -1051,10 +1051,7 @@ function $CompileProvider($provide, $$sanitizeUriProvider) { // support ngAttr attribute binding ngAttrName = directiveNormalize(name); if (isNgAttr = NG_ATTR_BINDING.test(ngAttrName)) { - name = name.replace(PREFIX_REGEXP, '') - .substr(8).replace(/_(.)/g, function(match, letter) { - return letter.toUpperCase(); - }); + name = snake_case(ngAttrName.substr(6), '-'); } var directiveNName = ngAttrName.replace(/(Start|End)$/, ''); diff --git a/test/ng/compileSpec.js b/test/ng/compileSpec.js index 3f11dbb42..992d7edc5 100755 --- a/test/ng/compileSpec.js +++ b/test/ng/compileSpec.js @@ -5040,21 +5040,16 @@ describe('$compile', function() { expect(element.attr('href')).toBe('test/test'); })); - it('should work if they are prefixed with x- or data- and different prefixes', inject(function($compile, $rootScope) { + it('should work if they are prefixed with x- or data-', inject(function($compile, $rootScope) { $rootScope.name = "Misko"; - element = $compile('')($rootScope); + element = $compile('')($rootScope); expect(element.attr('test2')).toBeUndefined(); expect(element.attr('test3')).toBeUndefined(); expect(element.attr('test4')).toBeUndefined(); - expect(element.attr('test5')).toBeUndefined(); - expect(element.attr('test6')).toBeUndefined(); $rootScope.$digest(); expect(element.attr('test2')).toBe('Misko'); expect(element.attr('test3')).toBe('Misko'); expect(element.attr('test4')).toBe('Misko'); - expect(element.attr('test5')).toBe('Misko'); - expect(element.attr('test6')).toBe('Misko'); })); describe('when an attribute has a dash-separated name', function () { @@ -5088,35 +5083,6 @@ describe('$compile', function() { }); - describe('when an attribute has an underscore-separated name', function() { - - it('should work with different prefixes', inject(function($compile, $rootScope) { - $rootScope.dimensions = "0 0 0 0"; - element = $compile('')($rootScope); - expect(element.attr('viewBox')).toBeUndefined(); - $rootScope.$digest(); - expect(element.attr('viewBox')).toBe('0 0 0 0'); - })); - - it('should work if they are prefixed with x- or data-', inject(function($compile, $rootScope) { - $rootScope.dimensions = "0 0 0 0"; - $rootScope.number = 0.42; - $rootScope.scale = 1; - element = $compile('' + - '' + - '' + - '' + - '' + - '')($rootScope); - expect(element.attr('viewBox')).toBeUndefined(); - $rootScope.$digest(); - expect(element.attr('viewBox')).toBe('0 0 0 0'); - expect(element.find('filter').attr('filterUnits')).toBe('0.42'); - expect(element.find('feDiffuseLighting').attr('surfaceScale')).toBe('1'); - expect(element.find('feSpecularLighting').attr('surfaceScale')).toBe('1'); - })); - }); - describe('multi-element directive', function() { it('should group on link function', inject(function($compile, $rootScope) { $rootScope.show = false;