2017-02-18 66 views
0

我完全相信我会以错误的方式去解决这个问题,但是看到我与angularjs有多新,我无法弄清楚如何完成我想要的。我有一组使用ng-repeat的用户,但我无法弄清楚如何通过范围变量userId进行过滤。 User id: <name>正在打印出来,所以没有问题。我怎样才能有ng-repeat循环排序这个userId?如果我正在处理错误的事情,请将我的文档链接起来,以帮助我以正确的方式进行操作。如何在ng-repeat过滤器中使用范围变量?

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; 
} 
+0

我可以问一下'$ scope.users'声明在哪里吗? – awmleer

+0

对不起,我离开了。它来自ngResource。有用。 – Ducksauce88

回答

2

您可以简单地用一个$scope变量userId在NG-重复像这样

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

基本上只是不需要角度表达{{}}的,因为它已经在表达式里面。

几个链接,以帮助你如果你需要。

Here is a blog explaining Two Thumb Rules决定是否使用卷发。

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

+0

谢谢。这正是我不明白的地方。完美的作品。 – Ducksauce88

+0

为了帮助您理解,请使用几个良好的链接更新答案。 –

+0

非常感谢! – Ducksauce88

0

如果users的结构是这样的:

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

您可以使用 '排序依据' 过滤器进行排序,并使用filter过滤器进行过滤:

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

iduserng-repeat的财产。

这里是单证:filterorderBy