gpt4 book ai didi

javascript - 是否允许 AngularJS 中的条件 .filter() 和 .map() 发生变化?

转载 作者:行者123 更新时间:2023-11-29 18:44:49 25 4
gpt4 key购买 nike

我遇到无法编辑页面实际脚本的问题。这意味着我无法添加 AngularJS 过滤器、指令等。我的能力很有限,所以我只能编辑 HTML。

我希望能够根据下拉列表中的输入,根据所选属性过滤现有列表。这相对容易,可以这样做:

myArray.filter(x => x.Type == selectedType)

但是,AngularJS 会抛出错误,因为它不允许我使用 .filter(function(){}).filter(x => x)。起初我认为这是 lambda 的问题,因为 AngularJS 可能不支持它,但事实证明它基本上不可能根据其属性过滤数组。

这是我的初始对象:

[{
"id": "random",
"type": "1",
"name": "First tag"
},
{
"id": "random-2",
"type": "1",
"name": "Second tag"
},
{
"id": "random-3",
"type": "2",
"name": "Third tag"
}]

如果我执行 .filter(x => x.type = "2"),我应该能够得到这个列表:

[{
"id": "random-3",
"type": "2",
"name": "Third tag"
}]

看看这个 Plunker:https://embed.plnkr.co/yudKIhsB2OQ9Phh0X1am

HTML 中的“过滤标签”应显示基于此条件的过滤标签(适用于普通 JavaScript 语言):

ng-change="vm.FilteredTags = vm.Tags.filter(x => x.type == vm.SelectedValue)"

最佳答案

您可以过滤掉匹配 vm.SelectedValuetype 属性值。

<p>Filtered tags: {{vm.Tags | filter: {type: vm.SelectedValue}: true }}</p>

或者使用别名会更简单,不需要在 ng-change 上使用它。

<div ng-repeat="vm.Tags | filter: {type: vm.SelectedValue}: true as FilteredTags">
... your sutff here...
<div>

关于javascript - 是否允许 AngularJS 中的条件 .filter() 和 .map() 发生变化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54591751/

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