我的Angular代码出了什么问题?我正进入(状态:
Cannot read property 'remove' of undefined at BrowserDomAdapter.removeClass ...
HTML
<ol class="breadcrumb">
<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>
11 回答
使用以下示例,您可以使用IF ELSE
你应该使用这样的东西(
[ngClass]
而不是*ngClass
):扩展MostafaMashayekhi他对选项二的答案>你也可以用','链接多个选项
此外,* ngIf可用于某些情况,通常与* ngFor结合使用
[ngClass]=...
而不是*ngClass
.*
仅用于结构指令的简写语法,例如您可以使用它而不是更长的等效版本
另见https://angular.io/docs/ts/latest/api/common/index/NgClass-directive.html
另见https://angular.io/docs/ts/latest/guide/template-syntax.html
<div [class.special] =“isSpecial”>类绑定是特殊的</ div>
<! - 绑定到
class.special
胜过类属性 - ><div class =“special” [class.special] =“!isSpecial”>这个不是那么特别</ div>
<div class =“bad curly special” [class] =“badCurly”>卷曲</ div>
Angular 2提供了一些添加类条件的方法
有不同的类型:
type one
type two
type three
type four
另一种解决方案是使用
[class.active]
.示例:
这是
ngClass
的正常结构是:所以在你的情况下,就像这样使用它......
您可以使用ngClass有条件地应用类名,而不是在Angular中
例如
Conditional
Multiple Condition
Method expression
This method will inside of your component
当我创建一个反应形式时,我不得不在按钮上分配两种类型的类 . 我就这样做了:
当表单有效时,按钮有btn和btn-class(来自bootstrap),否则只有btn类 .
这对我有用
[ngClass]="{'active': dashboardComponent.selected_menu == 'profile'}"
在
Angular 7.X
CSS类更新如下,具体取决于表达式求值的类型:
string - 添加字符串中列出的CSS类(空格分隔),Array - 添加声明为Array元素的CSS类,Object - keys是当值中给出的表达式计算为truthy值时添加的CSS类,否则他们会被删除 .