检查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! 你得到错误