gpt4 book ai didi

javascript - 带参数的 AngularJS 自定义过滤器

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

我的自定义过滤器应该输出:

标记

...但是它正在输出:

  • M
  • 一个
  • r
  • k

这是我的观点:

  <body ng-controller="MainCtrl">
<ul>
<li ng-repeat="friend in friends | myFriend:currentUser">
{{ friend }}
</li>
</ul>
</body>

...和 Controller :

var app = angular.module('plunker', []);

app.filter('myFriend', function () {
return function (items, currentUser) {
console.log(items);
console.log(currentUser);
for (var i = 0; i < items.length; i++) {
if (items[i] === currentUser) {
return items[i];
}
}

};
});

app.controller('MainCtrl', function($scope) {
$scope.currentUser = 'Mark';
$scope.friends = ['Andrew', 'Will', 'Mark', 'Alice', 'Todd'];
});

这是我的 Plunker: http://plnkr.co/edit/JCKAt05MPlrvIZBCGO0n?p=preview

我的自定义过滤器如何输出“标记”?

最佳答案

那是因为您传递的是来自过滤器的字符串而不是字符串数组。 ng-repeat 将遍历字符串 Mark 的字符(字符串是字符数组)并显示它。您需要将数组传递给 ng-repeat。在将源应用到 ng-repeat 之前首先运行过滤器。示例:

for (var i = 0; i < items.length; i++) {
if (items[i] === currentUser) {
return [items[i]];
}
}

在您的特定情况下,您也可以按照以下方式执行操作,而无需创建任何自定义过滤器:

 <li ng-repeat="friend in friends | filter:currentUser:true">
{{ friend }}
</li>

关于javascript - 带参数的 AngularJS 自定义过滤器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31279866/

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