fix(ivy): error when encountering an empty class attribute (#28321)

Fixes Ivy throwing an error if it encounters an empty class attribute in a template (`class=""`).

This PR resolves FW-972.

PR Close #28321
This commit is contained in:
Kristiyan Kostadinov
2019-01-23 18:41:20 +01:00
committed by Jason Aden
parent 9098225ff0
commit 22a43cff4d
2 changed files with 18 additions and 8 deletions

View File

@ -982,14 +982,17 @@ function setClass(
if (playerBuilder) {
playerBuilder.setValue(className, add);
}
} else if (add) {
ngDevMode && ngDevMode.rendererAddClass++;
isProceduralRenderer(renderer) ? renderer.addClass(native, className) :
native['classList'].add(className);
} else {
ngDevMode && ngDevMode.rendererRemoveClass++;
isProceduralRenderer(renderer) ? renderer.removeClass(native, className) :
native['classList'].remove(className);
// DOMTokenList will throw if we try to add or remove an empty string.
} else if (className !== '') {
if (add) {
ngDevMode && ngDevMode.rendererAddClass++;
isProceduralRenderer(renderer) ? renderer.addClass(native, className) :
native['classList'].add(className);
} else {
ngDevMode && ngDevMode.rendererRemoveClass++;
isProceduralRenderer(renderer) ? renderer.removeClass(native, className) :
native['classList'].remove(className);
}
}
}