2017-04-08 26 views
1

我試圖改變基於數組的一些元素的類。 我已經聲明瞭一個函數來返回一個布爾值,並說如果字符串(狀態/類)包含在數組中。 我把它叫做isState(st: string) {return (this.ArrayWithClasses.indexOf(st) > 0)}根據功能的角度2納克級

然後我做

[ngClass]="{'class-I-Want-To-Activate': isState('evaluating-this-state') }" 

但是這豈不等於工作。你看到我的錯誤?最好的解決方案?

編輯:這是工作,如果我只使用布爾切換類。所以,我認爲,如果功能是什麼是錯的...

+0

更新您的文章的方法和HTML標記 – Aravind

+1

只是像這樣改變.ArrayWithClasses.indexOf(ST)> -1,索引值總是從0開始。如果不存在,它將返回-1 – Srigar

回答

1

你不應該檢查是否indexOf()> 0,因爲,如果該字符串坐落在陣列首位,你會得到0

isState(st: string) { 
    let temp = this.ArrayWithClasses.indexOf(st); 
    if(temp != -1) 
     return true; 
    else 
     return false; 
} 

如果查找的字符串不位於陣中,您將獲得該-1價值。

1

使用下面

isState(st: string) { 
    let temp=this.ArrayWithClasses.indexOf(st) 
    if(temp) 
     return true; 
    else 
     return false; 
}