mirror of
https://github.com/Hopiu/angular.js.git
synced 2026-03-17 07:40:22 +00:00
parent
34f174066f
commit
7ec8a89362
2 changed files with 47 additions and 0 deletions
|
|
@ -546,8 +546,11 @@ function ngClass(selector) {
|
|||
return function(element) {
|
||||
this.$watch(function(scope) {
|
||||
if (selector(scope.$index)) {
|
||||
var ngClassVal = scope.$eval(element.attr('ng:class'));
|
||||
if (isArray(ngClassVal)) ngClassVal = ngClassVal.join(' ');
|
||||
var value = scope.$eval(expression);
|
||||
if (isArray(value)) value = value.join(' ');
|
||||
if (ngClassVal && ngClassVal !== value) value = value + ' ' + ngClassVal;
|
||||
element[0].className = trim(existing + value);
|
||||
}
|
||||
});
|
||||
|
|
|
|||
|
|
@ -217,6 +217,50 @@ describe("directive", function(){
|
|||
expect(e2.hasClass('even')).toBeTruthy();
|
||||
});
|
||||
|
||||
|
||||
it('should allow both ng:class and ng:class-odd/even on the same element', function() {
|
||||
var scope = compile('<ul>' +
|
||||
'<li ng:repeat="i in [0,1]" ng:class="\'plainClass\'" ' +
|
||||
'ng:class-odd="\'odd\'" ng:class-even="\'even\'"></li>' +
|
||||
'<ul>');
|
||||
scope.$apply();
|
||||
var e1 = jqLite(element[0].childNodes[1]);
|
||||
var e2 = jqLite(element[0].childNodes[2]);
|
||||
|
||||
expect(e1.hasClass('plainClass')).toBeTruthy();
|
||||
expect(e1.hasClass('odd')).toBeTruthy();
|
||||
expect(e1.hasClass('even')).toBeFalsy();
|
||||
expect(e2.hasClass('plainClass')).toBeTruthy();
|
||||
expect(e2.hasClass('even')).toBeTruthy();
|
||||
expect(e2.hasClass('odd')).toBeFalsy();
|
||||
});
|
||||
|
||||
|
||||
it('should allow both ng:class and ng:class-odd/even with multiple classes', function() {
|
||||
var scope = compile('<ul>' +
|
||||
'<li ng:repeat="i in [0,1]" ng:class="[\'A\', \'B\']" ' +
|
||||
'ng:class-odd="[\'C\', \'D\']" ng:class-even="[\'E\', \'F\']"></li>' +
|
||||
'<ul>');
|
||||
scope.$apply();
|
||||
var e1 = jqLite(element[0].childNodes[1]);
|
||||
var e2 = jqLite(element[0].childNodes[2]);
|
||||
|
||||
expect(e1.hasClass('A')).toBeTruthy();
|
||||
expect(e1.hasClass('B')).toBeTruthy();
|
||||
expect(e1.hasClass('C')).toBeTruthy();
|
||||
expect(e1.hasClass('D')).toBeTruthy();
|
||||
expect(e1.hasClass('E')).toBeFalsy();
|
||||
expect(e1.hasClass('F')).toBeFalsy();
|
||||
|
||||
expect(e2.hasClass('A')).toBeTruthy();
|
||||
expect(e2.hasClass('B')).toBeTruthy();
|
||||
expect(e2.hasClass('E')).toBeTruthy();
|
||||
expect(e2.hasClass('F')).toBeTruthy();
|
||||
expect(e2.hasClass('C')).toBeFalsy();
|
||||
expect(e2.hasClass('D')).toBeFalsy();
|
||||
});
|
||||
|
||||
|
||||
describe('ng:style', function(){
|
||||
it('should set', function(){
|
||||
var scope = compile('<div ng:style="{height: \'40px\'}"></div>');
|
||||
|
|
|
|||
Loading…
Reference in a new issue