【发布时间】:2016-11-11 18:27:34
【问题描述】:
我有一个包含名称和值的元素数组,我想在 ng-repeat 标记中过滤这些元素。我的数组有这样的元素:
$scope.extensions = [{
name: "extension1.00",
value: 1234587
}, {
name: "extension1.02",
value: 665873698742136544
}, {
name: "extension2.00",
value: 11
}........ //other elements
]
我的 ng-repeat 标签如下:
<div ng-repeat = "extension in ( extensions | filter : myFilter(extension.name) | orderBy: 'name' ) ">
我想要做的是编写一个自定义过滤器来仅显示名称不以“.00”结尾的元素。因此,在上面的示例中,我应该只看到“extension1.02”而不是其他两个。
所以,我尝试编写简单的过滤器,只是为了不显示第一个元素(“extension1.00”):
$scope.myFilter = function(name) {
return function(item) {
var result = true;
if (item === "extension1.00") {
return false;
} else {
}
return result;
};
};
但它根本不起作用...... 最后,这是我的代码: https://plnkr.co/edit/8oMCgFJhDaFyXfnz2OzU?p=preview
我尝试编写自己的过滤器,但我不知道如何实现这一点。 你能帮我写那个过滤器吗?谢谢!
【问题讨论】:
-
请在问题中包含
myFilter()的代码。 -
function myFilter(name) { return name.substr(-3) != '.00'; } -
@Soviut 我现在添加过滤器!
-
您将过滤器直接分配为不正确的范围变量。您必须使用过滤器工厂方法注册过滤器。
标签: javascript angularjs filter