I have an angular expression {{ userInfo.activities.ids }}
, it is an array which I am sending to angular through php.
Now I need to check a value in this array,
I am using this :-
[[userInfo.activities.ids.indexOf(1) != -1]]
and It returns true or false.
I wanted to apply ng-if
on basis of it's value.
Therefore I wrote:
<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">
But ng-if
is not verifying condition and therefore none of the input gets displayed.
Please suggest what method I can use instead of this?
For separating my template from angular expression I have used [[]] interpolates.
I am using angular along with laravel 5.2 php.
Remove your braces in the ng-if
condition,
If you are using the scope variables in the angular models such as ng-if, ng-model, ng-class
etc, there is no need to use the interpolation(curly-braces).
Also as your expression evaluates either true or false, you no need to again check == true
condition
<input ng-if="((userInfo.activities.ids.indexOf(1)) != -1)" checked type="checkbox">
<input ng-if="((userInfo.activities.ids.indexOf(1)) == -1)" type="checkbox">