HTML中按条件进行角度自定义筛选;不起作用
Angular custom filtering by condition in HTML doesn't work
我对angular很陌生,所以我的问题可能看起来很简单或很愚蠢,但我没有找到任何解决方案。我的控制器中有一个集合(例如,一个整数集合),我想对它进行过滤,并获取条件为true的项。
起初我尝试了这个:
<div>{{myCollection.find(item => item === 2)}}</div>
但没用。然后我找到了另一种方法(我不喜欢这种方法,因为我永远只有一个元素可以展示,而且不需要重新竞争):
<div ng-repeat="item in list | filter:{item === 2}">
<div>{{item}}</div>
</div>
而且它也不起作用。以下是我的努力:http://jsbin.com/govovocace/1/edit?html,js,输出
我的问题有什么可能的解决办法吗?计算控制器中所需的字段并将其传递给视图不适合我(不幸的是)。
您有语法错误。你不应该在过滤器中提到任何object
,因为你直接过滤你正在循环的实际对象。最后一个选项true
是因为我们要执行精确的检查。
HTML
<div ng-repeat="item in list | filter: 2: true">
<div>{{item}}</div>
</div>
Demo Plunkr
您可以在控制器中定义一个过滤函数,如下所示:
$scope.filterFn = function(val){
return val === 2;
};
然后在你的模板中使用它,就像这样:
<div ng-repeat="item in list | filter:filterFn">
<div>{{item}}</div>
</div>
Tha说,这相当于一开始就过滤数组,所以我不确定这是否符合您的需求。如果你有一个特殊的用例,这不适合在评论中告诉我。
我会做这样的
.controller('SomeController',function($scope){
// get the list from somewhere
$scope.list = [] // some array for instance
$scope.dataList = list.filter(function(i){
return i.someVal==list.someVal; // condition that satisfy your req
});
});
现在将其用作
<div ng-repeat=" item in dataList">
{{item}}
</div>
如果你的条件只返回一个结果,那么你可以进行
$scope.dataList = list.filter(function(i){
return i.someVal==list.someVal; // condition that satisfy your req
})[0];
相关文章:
- 数据表自定义筛选
- 类别自动完成jQuery中的单词级自定义筛选器,而不是子字符串
- 想要将ng个repeat对象传递给自定义筛选函数
- 自定义筛选器不'我不使用django数据表视图创建的ajax.data.Json
- 在模型可用之前调用使用 app.filter 的自定义筛选器
- 使用select2 3.5.2中的initSelection进行自定义筛选
- "键未定义”;在AngularJS'的自定义筛选功能
- 如何通过在 Fabric JS 中传递颜色代码来创建自定义筛选器
- Angular.js 中字符串特定部分的自定义筛选器表达式
- 自定义筛选器排序方式
- AngularJs:错误:用于配对项目的自定义筛选器引发错误:“达到 10 次 $digest() 迭代.流产!
- 将带有属性的自定义筛选器传递到角度中的自定义指令
- 如何在自定义筛选器中添加多个参数
- 将重复项传递给自定义筛选器
- 将URL的一部分传递给AngularJS中的自定义筛选器
- Typescript+angularjs自定义筛选器未知提供程序:
- 按数组值进行角度自定义筛选
- 用于搜索JSON数据的自定义筛选器
- 为Kendo网格中的特定列自定义筛选消息
- $timeout或$apply在自定义筛选器中使用时导致无限循环