Angular: conditional class with *ngClass

后端 未结 19 1961
醉话见心
醉话见心 2020-11-22 05:21

What is wrong with my Angular code? I am getting:

Cannot read property \'remove\' of undefined at BrowserDomAdapter.removeClass ...

相关标签:
19条回答
  • 2020-11-22 05:49

    [ngClass]=... instead of *ngClass.

    * is only for the shorthand syntax for structural directives where you can for example use

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

    instead of the longer equivalent version

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

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

    <some-element [ngClass]="'first second'">...</some-element>
    <some-element [ngClass]="['first', 'second']">...</some-element>
    <some-element [ngClass]="{'first': true, 'second': true, 'third': false}">...</some-element>
    <some-element [ngClass]="stringExp|arrayExp|objExp">...</some-element>
    <some-element [ngClass]="{'class1 class2 class3' : true}">...</some-element>
    

    See also https://angular.io/docs/ts/latest/guide/template-syntax.html

    <!-- toggle the "special" class on/off with a property -->
    <div [class.special]="isSpecial">The class binding is special</div>
    
    <!-- binding to `class.special` trumps the class attribute -->
    <div class="special"
         [class.special]="!isSpecial">This one is not so special</div>
    
    <!-- reset/override all class names with a binding  -->
    <div class="bad curly special"
         [class]="badCurly">Bad curly</div>
    
    0 讨论(0)
提交回复
热议问题