gpt4 book ai didi

javascript - 如何在 Angular 中过滤 ng repeat 中的元素

转载 作者:行者123 更新时间:2023-11-30 15:42:42 25 4
gpt4 key购买 nike

我有一个元素数组,其中包含要在 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

我尝试编写自己的过滤器,但不知道如何实现。你能帮我写那个过滤器吗?谢谢!

最佳答案

我在这里做了一个工作示例 --> click here

您犯的最大错误是将过滤器功能保留在 Controller 内。

我的过滤函数:

app.filter('myFilter', function(){
return function(items, str){
var filtered = [];
angular.forEach(items, function(item){
if (item.name.substr(item.name.lastIndexOf('.')+1) !== str){
filtered.push(item);
}
});
return filtered;}});

查看 codepen 的链接。它显示了更多您可以使用的自定义过滤器:)

关于javascript - 如何在 Angular 中过滤 ng repeat 中的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40554033/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com