2017-04-08 4 views
1

配列に基づいていくつかの要素のクラスを変更しようとしています。 ブール値を返し、文字列(state/class)が配列に含まれていると言う関数を宣言しました。 私はisState(st: string) {return (this.ArrayWithClasses.indexOf(st) > 0)}関数に応じて角2 ngクラス

それを呼び出すしている。そして、私は

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

を行う。しかし、それは働いてis't。あなたは私の間違いを見ますか?最高のソリューション?

編集:ブール値を使用してクラスを切り替えると機能しています。だから私は、関数が...間違っているものを

+0

あなたの投稿をメソッドで更新し、htmlのマークアップ – Aravind

+1

はthisのように変更するだけです.ArrayWithClasses.indexOf(st)> -1、インデックス値は常に0から始まります。存在しない場合は-1を返します – Srigar

答えて

1

その文字列が配列の最初の場所に配置されている場合、のでindexOf()値は、> 0ある場合は、チェックしてはなりません検索文字列が配列に配置されていない場合、あなたはそのための-1値を取得します、0

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

を取得します。

1

使用であれば検討し、以下の

isState(st: string) { 
    let temp=this.ArrayWithClasses.indexOf(st) 
    if(temp) 
     return true; 
    else 
     return false; 
} 
関連する問題