我的Angular代码出了什么问题?我得到以下错误:

无法读取BrowserDomAdapter.removeClass中未定义的属性“remove”

<ol>
  <li *ngClass="{active: step==='step1'}" (click)="step='step1'">Step1</li>
  <li *ngClass="{active: step==='step2'}" (click)="step='step2'">Step2</li>
  <li *ngClass="{active: step==='step3'}" (click)="step='step3'">Step3</li>
</ol>

当前回答

在下面的例子中,你可以使用IF ELSE

<p class="{{condition ? 'checkedClass' : 'uncheckedClass'}}">
<p [ngClass]="condition ? 'checkedClass' : 'uncheckedClass'">
<p [ngClass]="[condition ? 'checkedClass' : 'uncheckedClass']">

其他回答

[ngClass] =…而不是*ngClass。

*仅用于结构型指令的简写语法,例如可以使用

<div *ngFor="let item of items">{{item}}</div>

而不是较长的同等版本

<template ngFor let-item [ngForOf]="items">
  <div>{{item}}</div>
</template>

参见https://angular.io/docs/ts/latest/api/common/index/NgClass-directive.html

<some-element [ngClass]="'first second'"> <某个元素[ngClass] = "(“第一次”,“二”)" >…< /某个元素> <某个元素[ngClass] = "{“第一”:真的,“二”:真的,“第三”:假}" >…< /某个元素> <某个元素[ngClass] = " stringExp | arrayExp | objExp " >…< /某个元素> <some-element [ngClass]="{'class1 class2 class3': true}">

参见https://angular.io/docs/ts/latest/guide/template-syntax.html

<!——用属性>开启/关闭“特殊”类 < div[类。</div> . special]="isSpecial">类绑定是特殊的 <!——绑定到class。Special '胜过类属性——> < div class = "特殊的“ [class.special] = " !isSpecial">这个没有那么特别</div>

<!——用绑定重置/覆盖所有类名——> .使用实例 <div class="bad curly special" (类)= " badCurly " >坏花< / div >

Angular version 2+提供了几种有条件地添加类的方法:

1型

    [class.my_class] = "step === 'step1'"

两个类型

    [ngClass]="{'my_class': step === 'step1'}"

并有多种选择:

    [ngClass]="{'my_class': step === 'step1', 'my_class2' : step === 'step2' }"

三个类型

    [ngClass]="{1 : 'my_class1', 2 : 'my_class2', 3 : 'my_class4'}[step]"

四个类型

    [ngClass]="step == 'step1' ? 'my_class1' : 'my_class2'"

您可以在文档页上找到这些示例

你可以使用ngClass有条件地应用类名,也可以不在Angular中应用

例如

[ngClass]="'someClass'">

有条件的

[ngClass]="{'someClass': property1.isValid}">

多个条件

 [ngClass]="{'someClass': property1.isValid && property2.isValid}">

方法表达

[ngClass]="getSomeClass()"

该方法将在组件内部

 getSomeClass(){
        const isValid=this.property1 && this.property2;
        return {someClass1:isValid , someClass2:isValid};
    }

此外,您可以添加与方法函数:

在HTML中

<div [ngClass]="setClasses()">...</div>

在component.ts

// Set Dynamic Classes
  setClasses() {
    let classes = {
      constantClass: true,
      'conditional-class': this.item.id === 1
    }

    return classes;
  }

如果用户想显示基于&&和||的类 下面是我的工作

[ngClass]="{'clasname_1':  condition_1 && condition_2, 'classname_2':  condition_1 && condition2, 'classname_3': condition}"

例子:

[ngClass]="{'approval-panel-mat-drawer-side-left':  similar_toil_mode==='side' && showsTheSimilarToilsWithCloseIcon, 'approval-panel-mat-drawer-side-right':  similar_toil_mode==='side' && !showsTheSimilarToilsWithCloseIcon, 'approval-panel-mat-drawer-over': similar_toil_mode==='over'}"