2016-10-25 160 views
1

我正在使用Angular2和bootstrap作爲組件。 如果來自* ngFor循環的測試屬性「2」等於名爲newTest的導入變量,我試圖向我的tr-tag添加一個類。 但它沒有添加類。Angular 2 - * ngFor with conditional class

這裏是我的組件:

loadTest() { 
     this.testService.getTests() 
     .then((data) => { 
      this.tests = data 
     }) 
    } 

ngOnInit() { 
     this.loadTest(); 
    } 

正確顯示的表,但是類是不存在的。

雖然條件絕對滿足。

這裏是我的html:

<div class="table-responsive"> 
    <table class="table table-hover table-reflow"> 
     <thead> 
      <tr> 
       <th>1</th> 
       <th>2</th> 
       <th>3</th> 
       <th>4</th> 
       <th>5</th> 
      </tr> 
     </thead> 
     <tbody> 
      <tr *ngFor="let test of tests" [class.newDevice]="test.2 === this.newTest" [attr.class]="test.1" > 
       <th>{{test.1}}</th> 
       <th>{{test.2}}</th> 
       <th>{{test.3}}</th> 
       <th>{{test.4}}</th> 
       <th>{{test.5}}</th> 
      </tr> 
     </tbody> 
    </table> 
</div> 

我在做別的事情了? 我試圖達到相同的使用jQuery,太:

loadTest() { 
      this.testService.getTests() 
      .then((data) => { 
       this.tests = data 
    if (NewTest.length !== undefined) { 
        let index = this.tests.findIndex((e) => { return e.2 === NewTest }) 
        let test = this.tests[index].id 
        jQuery(test).addClass("newDevice"); 
       } 
      }) 
     ) 
+0

爲什麼你有'[class.newDevice]'和'[attr.class]'?這兩個不是彼此重疊嗎? – martin

+1

AFAIK'attr.class'應該避免(例如在Safari移動中導致問題)。改用'[ngClass]'。 –

+0

你可以試試這個:[ngClass] =「{'newDevice':test.2 == newTest}」'? – rinukkusu

回答

3

[class.newDevice][attr.class]被覆蓋對方。