加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

angularjs – 角度过滤器恰好对象键

发布时间:2020-12-17 08:34:55 所属栏目:安全 来源:网络整理
导读:嗨,我有一个小角度的应用程序,如: html body ng-app div ng-controller="Ctrl" div ng-repeat="user in users | filter:1" span{{ user.username }},{{ user.id }}/span /div /div/body app.js function Ctrl($scope) { $scope.users = [ {"id":1,"userna
嗨,我有一个小角度的应用程序,如:

html

<body ng-app>
  <div ng-controller="Ctrl">
    <div ng-repeat="user in users | filter:1">
      <span>{{ user.username }},{{ user.id }}</span>
    </div>
  </div>
</body>

app.js

function Ctrl($scope) {
  $scope.users = [
    {"id":1,"username":"simon",},{"id":8,"username":"betty",{"id":14,"username":"archie",{"id":3,"username":"jumbo1"},]
}

输出

simon,1
archie,14
jumbo1,3

我想做的是过滤一个精确匹配的过滤器参数和过滤器id字段ONLY。

基本上,我想要的输出是:

输出

simon,1

我使用Angular 1.2,但我很难得到如何获得我需要的确切的功能。

任何帮助将不胜感激。

在Angular 1.1.3或更高版本中,您可以使用以下命令:
<div ng-repeat="user in users | filter:{'id':  1}:true">

{‘id’:1}说只能与字段ID进行比较。这让你:

simon,14

:true表示“完全匹配”导致:

simon,1

这是工作:http://jsfiddle.net/AM95H/

要对一个值列表进行过滤,如果你有一个作用域变量中的列表,我会添加一个自定义过滤器到你的JS文件:

$scope.filterValues = [1,8];
$scope.myFilter = function(value) {
   return ($scope.filterValues.indexOf(value.id) !== -1);
};

使用像这样:

<div ng-repeat="user in users |  filter: myFilter">

要过滤参数列表,我们将创建自己的过滤器。在这种情况下,我们将调用一次所有的输入值来测试,而不是每个值一次。

因此,我们将接收的第一个参数是输入值数组(在您的情况下是用户),第二个参数是我们传入的参数([1,8])。然后,我们将创建一个输出数组,并在输入流中添加(推送)匹配其中一个filterValues的任何项目。并返回输出数组。

myApp.filter('myFilter',function () {  
   return function(inputs,filterValues) {
      var output = [];
      angular.forEach(inputs,function (input) {
        if (filterValues.indexOf(input.id) !== -1)
            output.push(input);
       });
       return output;
   };
});

并使用它像这样:

<div ng-repeat="user in users |  myFilter:[1,8]">

这里有一个例子:http://jsfiddle.net/AM95H/2/

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读