2016-09-06 4 views
-1

私は角度表現{{ userInfo.activities.ids }}を持っていますが、それはPHPを通して角に送る配列です。ng-ifが期待通りに動作しない場合

[[userInfo.activities.ids.indexOf(1) != -1]]とそれが真か偽を返す - :
は今、私はこれを使用しています
、この配列の値をチェックする必要があります。
ng-ifをその価値に基づいて適用したいと考えました。 は、したがって、私は書いた:

<input ng-if="{{userInfo.activities.ids.indexOf(1) != -1}} == true" checked type="checkbox"> 
<input ng-if="{{userInfo.activities.ids.indexOf(1) == -1}} == true" type="checkbox"> 

しかしng-ifは、条件を検証していないため、入力のどれも表示されませんされます。

私はこれの代わりにどのような方法をお勧めしますか?
私のテンプレートを角度表現から分離するために、私は[[]]を使って補間を行いました。
私はlaravel 5.2 phpと共に角を使用しています。

答えて

1

ng-if状態であなたのかっこを削除]を使用し、(補間を使用する必要はありません中括弧)。また

あなたの式が真または偽と評価として、あなたは再び== true条件

<input ng-if="((userInfo.activities.ids.indexOf(1)) != -1)" checked type="checkbox"> 
<input ng-if="((userInfo.activities.ids.indexOf(1)) == -1)" type="checkbox"> 

Here is a reference

+0

解決策を実装して確認しましょう。ありがとう@スラヴァン。 – Simer

+0

その作業。ありがとう!!また、ng-if = "{{userInfo.activities.ids.indexOf(1)!= -1}} == 'true'"を適用したときにも機能しました。つまり、真/偽を引用符で囲んだときです。ありがとうございました。 – Simer

+0

これは私がフロントエンドの開発者として私の2年間のキャリアで見た最悪の条件です。私の答えのチェックを使う – CodeNashor

3

このようなあなたの配列を確認してください:

<input ng-if="userInfo.activities.ids[0] === -1" type="checkbox"> // if the value is a number 
<input ng-if="userInfo.activities.ids[0] === '-1'" type="checkbox"> // it its a string 
<input ng-if="userInfo.activities.ids.length === 0'" type="checkbox"> // if its empty 

アイデンティティ(===)演算子はなし型変換を除くオペレータが行われ、型が同じでなければなりません(==)平等に同じ動作します等しいとみなされる。あなたは、このようななどng-if, ng-model, ng-classような角度のモデルにスコープ変数を使用している場合は、必ず===や!の==

+0

をチェックする必要はありません、私は1,2,3のインデックスをチェックする必要がので、私の配列にしてそれに基づいて、私はチェックを適用する必要があります。問題の説明のとおり。ヘルプ@codeNashorに感謝します。 – Simer

関連する問題