Skip to content
This repository was archived by the owner on Feb 22, 2018. It is now read-only.

Commit 09797f0

Browse files
cbrackenrkirov
authored andcommitted
fix(ng_class): fix space-handling in css classes.
1 parent 64df6b8 commit 09797f0

File tree

2 files changed

+15
-1
lines changed

2 files changed

+15
-1
lines changed

lib/directive/ng_class.dart

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -211,7 +211,8 @@ abstract class _NgClassBase {
211211
_computeMapChanges(value, _first);
212212
} else {
213213
if (value is String) {
214-
_currentSet..clear()..addAll(value.split(' '));
214+
var values = value.split(' ').where((c) => c.isNotEmpty);
215+
_currentSet..clear()..addAll(values);
215216
} else if (value == null) {
216217
_currentSet.clear();
217218
} else {

test/directive/ng_class_spec.dart

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -94,6 +94,19 @@ main() {
9494
expect(element).toHaveClass('B');
9595
});
9696

97+
it('should handle empty class strings', () {
98+
var element = _.compile('<div class="existing" ng-class="\'\'"></div>');
99+
_.rootScope.apply();
100+
expect(element).toHaveClass('existing');
101+
});
102+
103+
it('should gracefully handle extraneous whitespace', () {
104+
var element = _.compile('<div class="existing" ng-class="\' A B \'"></div>');
105+
_.rootScope.apply();
106+
expect(element).toHaveClass('existing');
107+
expect(element).toHaveClass('A');
108+
expect(element).toHaveClass('B');
109+
});
97110

98111
it('should preserve class added post compilation with pre-existing classes', () {
99112
var element = _.compile('<div class="existing" ng-class="dynClass"></div>');

0 commit comments

Comments
 (0)