如何在ng-repeat过滤器中使用范围变量?

时间:2017-02-18 00:32:58

标签: javascript html angularjs

我完全相信我会以错误的方式解决这个问题,但看到我对angularjs有多新,我无法弄清楚如何实现我想要的。我有一组用户希望使用ng-repeat,但我无法弄清楚如何使用范围变量userId进行过滤。 User id: <name>打印得很好,因此范围没有问题。如何通过此ng-repeat进行userId循环排序?如果我说错了什么,请你链接我的文件,这将有助于我以正确的方式去做。

HTML:

User id: {{userId}}
<br>
User Name:
<ul>
    <li ng-repeat="user in users | filter:{{userId}}">
        {{user.name}}
    </li>
</ul>

控制器:

function PhoneDetailController($scope, $routeParams, Users){
     $scope.userId = $routeParams.userId;
}

2 个答案:

答案 0 :(得分:2)

你可以简单地在ng-repeat中使用def this_one_operator(math_operator, num1, num2): return (operator == "/")*(num1/num2) + \ (operator == "+")*(num1+num2) + \ (operator == "-")*(num1-num2) + \ (operator == "*")*(num1*num2) 变量$scope,如此

userId

基本上不需要角度表达式<ul> <li ng-repeat="user in users | filter:userId"> {{user.name}} </li> </ul> ,因为它已经在表达式中。

如果您需要帮助,可以使用几个链接。

Here is a blog explaining Two Thumb Rules在决定是否使用curlies时。

When exactly to use double curly braces, single curly braces and no braces

答案 1 :(得分:0)

如果users的结构是这样的:

[
    {id:1,name:'xxx'},
    {id:2,name:'yyy'}
]

您可以使用'orderBy'过滤器对其进行排序,并使用filter过滤器对其进行过滤:

<ul>
    <li ng-repeat="user in users | filter:{id:userId} | orderBy: 'id' ">
        {{user.name}}
    </li>
</ul>

iduserng-repeat的属性。

以下是文档:filterorderBy