相关疑难解决方法(0)

如何使用多个参数调用Angular.js过滤器?

文档中我们可以调用像这样的日期过滤器:

{{ myDateInScope | date: 'yyyy-MM-dd' }}
Run Code Online (Sandbox Code Playgroud)

这里date是一个带有一个参数的过滤器.

从模板和JavaScript代码调用带有更多参数的过滤器的语法是什么?

angularjs

291
推荐指数
2
解决办法
20万
查看次数

Angular.js ng-repeat过滤属性具有多个值之一(值的OR)

是否可以过滤对象数组,以便属性值可以是几个值(OR条件),而无需编写自定义过滤器

这类似于这个问题 - Angular.js ng-repeat:按单个字段过滤

而不是

<div ng-repeat="product in products | filter: { color: 'red' }">
Run Code Online (Sandbox Code Playgroud)

有可能做这样的事情

<div ng-repeat="product in products | filter: { color: 'red'||'blue' }">
Run Code Online (Sandbox Code Playgroud)

如下样本数据─

$scope.products = [
   { id: 1, name: 'test', color: 'red' },
   { id: 2, name: 'bob', color: 'blue' }
   /*... etc... */
];
Run Code Online (Sandbox Code Playgroud)

我没试过

<div ng-repeat="product in products | filter: { color: ('red'||'blue') }">
Run Code Online (Sandbox Code Playgroud)

javascript angularjs angularjs-ng-repeat angularjs-filter

56
推荐指数
5
解决办法
13万
查看次数

反转angular.js滤波器的极性

给定一个过滤器方法,如果满足某些条件则返回true,是否可以在HTML中调用其相反的方法,例如使用:

"item in items | filter:!AllDay"
Run Code Online (Sandbox Code Playgroud)

代替

"item in items | filter:AllDay"
Run Code Online (Sandbox Code Playgroud)

?或者你必须维护两个单独的过滤方法(一个用于假,一个用于真)?

angularjs

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

AngularJS - 基于类别的复杂过滤等

我已经做了一些google-fu但是我能找到的关于AngularJS过滤器的所有内容都是关于简单过滤器的简单示例(主要是关于单个字段的值).

我之后的事情有点复杂,我在寻求如何解决我的情况的帮助.

想象一下,你有一个以下JSON对象的数组:

{
    "id":"1",
    "title":"Title",
    "categories":[
        {"id":"14","name":"DIY"}
    ],
    "topics":[
        {"id":"12","name":"Junk Food"}
    ]
},
{
    "id":"2",
    "title":"Title 2",
    "categories":[
        {"id":"4","name":"Test"},
        {"id":"14","name":"DIY"},
    ],
    "topics":[
        {"id":"2","name":"Food"}
    ]
}

[...]
Run Code Online (Sandbox Code Playgroud)

所以基本上每个对象可以有任意数量的"类别"和/或"主题".

现在,我的目标是创建一个前端界面,允许我累积地将各种过滤器应用于这些JSON对象.

例如,我想说:只显示具有category.id = 14 AND topic.id = 2 [etc]的条目,并且仍然支持过滤结果的深层链接.

所以这就是我被困的地方:

1)为此使用路由的最佳方法是什么(即如何构建URL以支持任意数量的过滤器(基于不同的值)

2)我应该如何跟踪添加的过滤器?(即,用户选择了多少和哪些过滤器)

查看AngularJS过滤器的文档,我显然会将第二个示例用于过滤参数:

对象:模式对象可用于过滤数组包含的对象的特定属性.例如{name:"M",phone:"1"}谓词将返回一个项目数组,其属性名称包含"M",属性手机包含"1".可以使用特殊属性名称$(如{$:"text"})来接受对象的任何属性的匹配.这相当于如上所述与字符串匹配的简单子字符串.

但我不确定如何确保我正在检查正确的字段(即topic.id主题与category.id类别)...

简而言之,我很想看到这样一个不那么简单的过滤场景的例子.

javascript json angularjs

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

AngularJS - 使用ngRepeat指令的自定义过滤器

我想将自定义过滤器与ngRepeat指令一起使用.这就是我所拥有的

HTML:

<div ng-app="menuApp">
    <ul ng-controller="MenuCtrl">
        <li ng-repeat="item in menuItems | rootCategories">
            {{item.Name}}
        </li>
    </ul>
</div>
Run Code Online (Sandbox Code Playgroud)

JS:

angular.module('menuApp', [])
    .filter('rootCategories', function() {
        return function(item) {
            return item.Parent == 0;
        };
    });

function MenuCtrl($scope) {
    $scope.menuItems = [{ "Id": 1, "Name": "Sweep", "Parent": 0 }];

    /*
    $scope.rootCategories = function(item) {
        return item.Parent == 0;
    };
    */
};
Run Code Online (Sandbox Code Playgroud)

我不想使用注释掉的方式来过滤我的项目,因为真正的过滤器将比提供的示例复杂.由于某些原因,输入参数"item"未定义,因此我什么也看不见.你能告诉我有什么问题吗?谢谢.

angularjs angularjs-ng-repeat

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