1

给定一个列表,例如

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 应用程序中执行此操作,该应用程序试图装饰所有列表项,包括隐藏项,从而降低性能。

JSFiddle 在http://jsfiddle.net/ghendricks/MXu3a/

4

1 回答 1

1

你是对的,ng-hide不应该在这里使用,这是过滤器的工作。您可以提供自定义函数来过滤列表: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>
于 2013-04-19T23:38:37.607 回答