AngularJS过滤器“全部”无效

时间:2014-10-22 14:20:08

标签: angularjs angularjs-filter

我的AngularJS过滤器出了问题。 我不明白为什么,但我的一个选择过滤器效果不好。 以下是选择的代码:

<select ng-model="filterUser" ng-options="user for user in userList" class="form-control">
    <option value="">All</option>
</select>

列表的代码:

<tr ng-repeat="action in actions | filter:{user:filterUser, type:filterType, comment:filterComment}">
    <td>{{action.user}}</td>
    ...
</tr>

加载页面后,我有正确的用户列表。如果我从选择列表中选择一个用户,我只有该用户的操作,但如果我回到&#34;全部&#34;,则列表中没有其他内容。 但是这个列表并没有被破坏,就像我再次选择一个用户一样,然后我会采取行动。

有什么想法吗? :)

1 个答案:

答案 0 :(得分:0)

所以看看你目前使用多个过滤器的设置,我不知道你的数据结构是什么样的,但这里有一个例子,我将如何做,也许这会有所帮助。这是小提琴

        <select ng-model="currentUser" ng-options="user.name for user in users">
          <option value="">All</option>
        </select>

    <tr ng-repeat="action in actions | filter:currentUser.name">
      <td>
        {{action.name}}
      </td>
   </tr>

这个数据刚从我制作的一些蹩脚的应用程序中删除,但我保留了你的命名惯例。

var myApp = angular.module('myApp',[]);

function MyCtrl($scope) {
    $scope.users = [
        {"id": 0, "name": "Abdominals"},
        {"id": 1, "name": "Abductors"},
        {"id": 2, "name": "Adductors"},
        {"id": 4, "name": "Biceps"},
        {"id": 5, "name": "Calves"}
    ];
    $scope.actions = [
        {"id": 0, "muscle": "Abdominals", "name": "Crunch"},
        {"id": 1, "muscle": "Abductors", "name": "Plank"},
        {"id": 2, "muscle": "Adductors", "name": "Decline Crunch"},
        {"id": 4, "muscle": "Biceps", "name": "Curls"},
        {"id": 5, "muscle": "Calves", "name": "Jump Rope"}
    ];
}