下划线indexOf()在AngularJS {{}}插值中不起作用

时间:2018-08-06 12:49:20

标签: angularjs underscore.js

说我有一个简单的数组

$scope.array=[0,1,3,4,5,6];

和一个视图组件,在其中我需要ng-check与必须在数组中的vaule进行比较

`<ion-checkbox ng-checked="_.indexOf(array,1) !=-1"></ion-checkbox>`
`<ion-checkbox ng-checked="_.indexOf(array,2) !=-1"></ion-checkbox>`

我希望第一个复选框被选中,而不是第二个复选框,但它们都被选中。 难道我做错了什么? 谢谢你的帮助

2 个答案:

答案 0 :(得分:2)

AngularJS表达式是类似于JavaScript的代码段,主要位于插值绑定中。

如果要使用Underscore,则应编写$ scope函数并对其进行调用:

Js:

$scope.exists = function(array, idx){
    return _.indexOf(array, idx) != -1;
}

HTML:

<ion-checkbox ng-checked="exists(array,1)"></ion-checkbox>

或者,您可以写

$scope._ = _;

从依赖注入的角度来看,您应该提供Underscore作为常量。

答案 1 :(得分:1)

<ion-checkbox ng-checked="array.indexOf(1)!=-1"></ion-checkbox>

您可以尝试这个。