我有一个角度表达式{{ userInfo.activities.ids }}
,它是一个数组,我通过php发送角度。
现在我需要检查这个数组中的值,
我正在使用它: -
[[userInfo.activities.ids.indexOf(1) != -1]]
并返回true或false
我想根据它的价值来应用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。
答案 0 :(得分: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
identity(===)运算符的行为与equality(==)运算符完全相同,但不进行类型转换,并且类型必须相同才能被视为相等。始终使用===或!==
答案 1 :(得分:1)
删除ng-if
条件
如果在角度模型中使用范围变量,例如ng-if, ng-model, ng-class
等,则无需使用插值(花括号)。
此外,当您的表达式评估为true或false时,您无需再次检查== true
条件
<input ng-if="((userInfo.activities.ids.indexOf(1)) != -1)" checked type="checkbox">
<input ng-if="((userInfo.activities.ids.indexOf(1)) == -1)" type="checkbox">