我的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>
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};
}
与[ngClass]指令不相关,但我也得到了相同的错误
无法读取未定义的属性“移除”
和我认为是错误在我的[ngClass]条件,但它原来是我试图访问的[ngClass]条件的属性没有初始化。
就像我的打字文件里有这个
element: {type: string};
和在我的[ngClass]我正在使用
[ngClass]="{'active', element.type === 'active'}"
我得到了错误
无法读取未定义的属性“类型”
解决办法就是把我的财产
element: {type: string} = {type: 'active'};
希望它能帮助那些试图匹配[ngClass]中属性条件的人