检查angular模板中的数组中的值?

有没有什么办法来检查angular度模板中的值是否在数组中? 我正在寻找这样的东西:

<div ng-class="{'myClass':1 in [1,2,5]}">Yay</div> 

如果1在数组中,则应用myClass。

这可能吗?

另外,Angularjs使用了什么模板引擎? 我在哪里可以find它的文件? 每当我尝试和search(甚至官方文档),我似乎只是把指令或数据绑定的文档。

你可以使用indexOf()来testing一个值是否在一个数组中,然后像这样在你的ngClass使用它(来有条件地添加“newclass”):

 <div ng-class="{'newclass':([1,2,5].indexOf(2) > -1)}">Yay</div> 

或者更有可能的是你想要在你的作用域上testing一个数组:

 <div ng-class="{'newclass':(tarray.indexOf(1) > -1)}">Yay</div> 

假设,例如,你已经在你的控制器中声明tarray

 $scope.tarray=[1,2,5]; 

演示

就模板引擎而言,它是内置于Angular的。 所以没有什么独立的东西可以search。 但是这里是顶级模板文档 ,这里有一些很好的video教程,其中涵盖了模板(例如第一个是数据绑定)以及更多。

你可以创build一个filter来检查这个。 就像是:

 app.filter('inArray', function() { return function(array, value) { return array.indexOf(value) !== -1; }; }); 

那么你可以在你的模板中使用这个:

 <div ng-class="{'newclass': tarray | inArray : 1}">Yay</div> 

这样做的好处是它使你的模板更具可读性。

尝试这个:

 ng-class="{'myClass': !!~[1,2,5].indexOf(1)}" 

如果这个值不在数组中,那么你得到0! 你得到错误