如何在AngularJS过滤器中使用的参数? [英] How to use parameters within the filter in AngularJS?

查看:86
本文介绍了如何在AngularJS过滤器中使用的参数?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想在过滤器使用的参数,当我重复一些阵列,NG-重复

I want to use parameter in filter, when I iterate some arrays with ng-repeat

例如:

HTML-部分:

<tr ng-repeat="user in users | filter:isActive">

JavaScript的部分:

JavaScript-part:

$scope.isActive = function(user) {
    return user.active === "1";
};

不过,我希望能够使用过滤像

But I want to be able to use filter like

<tr ng-repeat="user in users | filter:isStatus('4')">

但它不工作。我怎样才能做这样的事情?

But its not working. How can I do something like that?

推荐答案

更新:我想我真的不看文件不够好,但你绝对可以使用的filter 这个语法过滤器(请参见这小提琴)由一个属性上的对象进行过滤:

UPDATE: I guess I didn't really look at the documentation well enough but you can definitely use the filter filter with this syntax (see this fiddle) to filter by a property on the objects:

<tr ng-repeat="user in users | filter:{status:4}">


下面是我的情况下,原来的答复它可以帮助别人:


Here's my original answer in case it helps someone:

使用过滤器过滤你将不能够在一个参数来传递,但也有在至少有两件事情可以做。

Using the filter filter you won't be able to pass in a parameter but there are at least two things you can do.

1),在如这拨弄<您的过滤功能设置要在一个范围的变量和参考,以滤除数据/ A>

JavaScript的:

JavaScript:

$scope.status = 1;
$scope.users = [{name: 'first user', status: 1},
                {name: 'second user', status: 2},
                {name: 'third user', status: 3}];

$scope.isStatus = function(user){
    return (user.status == $scope.status);
};

HTML:

<li ng-repeat="user in users | filter:isStatus">

2)创建一个新的过滤器,它发生在像这个小提琴的一个参数。

2) Create a new filter that takes in a parameter like this fiddle.

JavaScript的:

JavaScript:

var myApp = angular.module('myApp', []);
myApp.filter('isStatus', function() {
  return function(input, status) {
    var out = [];
      for (var i = 0; i < input.length; i++){
          if(input[i].status == status)
              out.push(input[i]);
      }      
    return out;
  };
});

HTML:

<li ng-repeat="user in users | isStatus:3">

请注意这个过滤器假设有一个在数组中的对象可能使其不太可重复使用的,但这仅仅是一个例子状态属性。您可以阅读了解更多信息创建过滤器。

Note this filter assumes there is a status property in the objects in the array which might make it less reusable but this is just an example. You can read this for more info on creating filters.

这篇关于如何在AngularJS过滤器中使用的参数?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆