Angular 2 [attr.class]覆盖本机DOM类

Pho*_*ynh 5 html javascript angular

我有一个变量保存我的班级名称字符串:

classNameB = "class-B";
Run Code Online (Sandbox Code Playgroud)

我想通过以下方式将此类名称添加到本地DOM元素[attr.class]

<div class="class-A" [attr.class]='classNameB'></div>
Run Code Online (Sandbox Code Playgroud)

然后,angular覆盖当前的DOM类class-A。创建元素后剩下的内容如下:

<div class="class-B"></div>
Run Code Online (Sandbox Code Playgroud)

我在这里做错什么,以及如何解决这个问题?

PS:我可以[ngClass]代替使用,如何使用?

Pho*_*ynh 4

所以我经历了一些有趣的情况,我几乎没有选择。大多数时候,我都使用[ngClass]它,直到以下情况为止都很好:

<div class='native-class' [ngClass]='classNameHolder' [ngClass]='{"some-class": isSomeClass}'>
Run Code Online (Sandbox Code Playgroud)

在哪里,

classNameHolder: string = 'class-name-1';
isSomeClass: boolean = true;
Run Code Online (Sandbox Code Playgroud)

我被困住了,直到我找到了很好的用途ngClass

<div class='native-class' ngClass='{{classNameHolder}} {{isSomeClass ? "some-class" : ""}}></div>
Run Code Online (Sandbox Code Playgroud)

就是这样。这是我从那时起一直使用的最后一个选项。如果有人遇到同样的情况,希望它会有所帮助。