相关疑难解决方法(0)

Angular.js按精确值过滤(严格相等)

我有以下HTML代码

  <ul ng-repeat="friend in friends | filter: { age: '2' } | orderBy: 'name' ">
   <li>{{friend.name}}</li>
  </ul>
Run Code Online (Sandbox Code Playgroud)

这是我的$ scope变量

 $scope.friends = [
{ name: "Peter",   age: 2 },
{ name: "Pablo",   age: 55 },
{ name: "Linda",   age: 20 },
{ name: "Marta",   age: 37 },
{ name: "Othello", age: 20 },
{ name: "Markus",  age: 32 }
];
Run Code Online (Sandbox Code Playgroud)

它回来了

Linda
Markus
Othello
Peter
Run Code Online (Sandbox Code Playgroud)

如何在ng过滤器中进行比较,以及如何让我的朋友只有2岁

Peter
Run Code Online (Sandbox Code Playgroud)

javascript angularjs

12
推荐指数
1
解决办法
1万
查看次数

角度精确过滤器

在Angular中,有没有办法修改过滤器,使其只返回完全匹配?

例:

var words = [
    {   title: "ball"   },
    {   title: "wall"   },
    {   title: "all"    },
    {   title: "alloy"  }
];

var wordsFiltered = filter('filter')
( 
    words, 
    { 
        'title': 'all'
    } 
);  
Run Code Online (Sandbox Code Playgroud)

以上将匹配'球','墙','所有'和'合金'.但我希望它只匹配'全部'.有什么方法可以改变吗?

filter angularjs

10
推荐指数
3
解决办法
3万
查看次数

按属性过滤对象数组,在ng-repeat中使用整数值

我有这样的指令

ng-repeat="place in tb_places | filter:{'id':inputID}"
Run Code Online (Sandbox Code Playgroud)

输出一些对象数组看起来像这样

$scope.tb_places = [
{name: 'some1', id:1}
...
{name: 'some10', id:10}
{name: 'some11', id:11}
{name: 'some12', id:12} 
...
]
Run Code Online (Sandbox Code Playgroud)

当我更改inputID并将其设置为1时,结果数组将填充源数组的元素,其中'ids'为1和10,11,12.因此,'id'值的部分被检查为子串,而不是数字.我该怎样治愈它?

谢谢!

UPD我试图在过滤器表达式中添加":true" - 它完全清除输出(结果数组),它适用于一个简单的字符串数组,但不适用于对象("t​​rue"想要与模式对象完全匹配,这意味着及其所有属性)

解决了!!!

对不起伙计们,我的错!'inputID'与'id'(string vs int)的类型不同,因此内置比较器(":true")返回false.非常感谢!

抱歉,我不能为你投票答案 - 缺乏声誉......见到你!

arrays angularjs angularjs-ng-repeat angularjs-filter

7
推荐指数
1
解决办法
7665
查看次数

ng-repeat中的角度过滤器与深对象

我正在按照这个问题过滤一个字段的ng-repeat

ng-repeat:按单个字段过滤

但是我的情况不同,它实际上是主对象的对象值中的一个字段.基本上我只想展示data.a == 1

以下代码适用于第一个列表.第二个列表给我错误:

angular.module('myapp', [])
.controller('mainCtrl', function ($scope) {
    $scope.items = [{
        name: "John",
        data: {
            a: 1
        }
    }, {
        name: "Lee",
        data: {
            a: 2
        }
    }, {
        name: "Rue",
        data: {
            a: 3
        }
    }, {
        name: "Peter",
        data: {
            a: 1
        }
    }];
});
Run Code Online (Sandbox Code Playgroud)

HTML

<div ng-controller="mainCtrl">
    <h1>List 1</h1>
    <p ng-repeat="item in items">{{ item.name }}</p>
    <h1>List 2</h1>
    <p ng-repeat="item in items | filter: {data.a :1}">{{ item.name }}</p>
</div>
Run Code Online (Sandbox Code Playgroud)

http://plnkr.co/edit/nh4GryqZJbEiXSzMzTKk

有关如何做到这一点的任何帮助还是有更好的方法?

更新1

我尝试过 …

javascript angularjs angularjs-ng-repeat angular-filters

6
推荐指数
1
解决办法
5627
查看次数