给出一个列表,如
var list = ['one','two','three'];
在角度中,我想遍历列表只渲染某些项目。类似的东西:
<ul ng-controller="main">
<li ng-repeat="item in list" ng-switch on="item">
<span ng-switch-when="one">{{item}}</span>
</li>
</ul>
输出如下:
<ul>
<li><span>one</span></li>
</ul>
相反,我得到:
<ul>
<li><span>one</span></li>
<li></li>
<li></li>
</ul>
我已经尝试过ng-hide但效率很低,因为我有大量的项目,只想显示一个或两个并且ng-hide渲染所有这些,然后用css隐藏不活动的项目。这是一个问题,因为我在一个JQuery Mobile应用程序中这样做,它试图装饰所有列表项,包括隐藏的项目,从而破坏性能。
答案 0 :(得分:1)
你是正确的,ng-hide
不应该在这里使用,它是filters的工作。
您可以提供自定义功能来过滤列表:http://jsfiddle.net/ERMVj/
$scope.selectOne = function (input) { return input == "two" || input == "one"; };
<li ng-repeat="l in list | filter:selectOne">
<span>{{l}}</span>
</li>