mirror of
https://github.com/zhigang1992/angular.js.git
synced 2026-04-03 22:44:00 +08:00
fix(jqLite): attr() should not special-case 'class' attribute
since jQuery 1.6 'class' is not treated specially, so we have to revert this fix and use className in tests instead
This commit is contained in:
@@ -253,13 +253,7 @@ forEach({
|
||||
},
|
||||
|
||||
attr: function(element, name, value){
|
||||
if (name === 'class') {
|
||||
if(isDefined(value)) {
|
||||
element.className = value;
|
||||
} else {
|
||||
return element.className;
|
||||
}
|
||||
} else if (SPECIAL_ATTR[name]) {
|
||||
if (SPECIAL_ATTR[name]) {
|
||||
if (isDefined(value)) {
|
||||
element[name] = !!value;
|
||||
} else {
|
||||
|
||||
@@ -254,7 +254,7 @@ describe("directive", function() {
|
||||
scope.$digest();
|
||||
scope.dynCls = 'foo';
|
||||
scope.$digest();
|
||||
expect(element.attr('class')).toBe('ui-panel ui-selected ng-directive foo');
|
||||
expect(element[0].className).toBe('ui-panel ui-selected ng-directive foo');
|
||||
});
|
||||
|
||||
|
||||
@@ -262,7 +262,7 @@ describe("directive", function() {
|
||||
var scope = compile('<div class="panel bar" ng:class="dynCls"></div>');
|
||||
scope.dynCls = 'panel';
|
||||
scope.$digest();
|
||||
expect(element.attr('class')).toBe('panel bar ng-directive');
|
||||
expect(element[0].className).toBe('panel bar ng-directive');
|
||||
});
|
||||
|
||||
|
||||
@@ -272,7 +272,7 @@ describe("directive", function() {
|
||||
scope.$digest();
|
||||
scope.dynCls = 'window';
|
||||
scope.$digest();
|
||||
expect(element.attr('class')).toBe('bar ng-directive window');
|
||||
expect(element[0].className).toBe('bar ng-directive window');
|
||||
});
|
||||
|
||||
|
||||
@@ -283,7 +283,7 @@ describe("directive", function() {
|
||||
element.addClass('foo');
|
||||
scope.dynCls = '';
|
||||
scope.$digest();
|
||||
expect(element.attr('class')).toBe('ng-directive');
|
||||
expect(element[0].className).toBe('ng-directive');
|
||||
});
|
||||
|
||||
|
||||
@@ -291,7 +291,7 @@ describe("directive", function() {
|
||||
var scope = compile('<div ng:class="dynCls"></div>');
|
||||
scope.dynCls = [undefined, null];
|
||||
scope.$digest();
|
||||
expect(element.attr('class')).toBe('ng-directive');
|
||||
expect(element[0].className).toBe('ng-directive');
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
@@ -168,15 +168,6 @@ describe('jqLite', function(){
|
||||
var elm = jqLite('<div class="any">a</div>');
|
||||
expect(elm.attr('non-existing')).toBeUndefined();
|
||||
});
|
||||
|
||||
it('should special-case "class" attribute', function() {
|
||||
// stupid IE9 returns null for element.getAttribute('class') when element has ng:class attr
|
||||
var elm = jqLite('<div class=" any " ng:class="dynCls">a</div>');
|
||||
expect(elm.attr('class')).toBe(' any ');
|
||||
|
||||
elm.attr('class', 'foo bar');
|
||||
expect(elm.attr('class')).toBe('foo bar');
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user