首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >允许条件.filter()和.map()在AngularJS中进行更改吗?

允许条件.filter()和.map()在AngularJS中进行更改吗?
EN

Stack Overflow用户
提问于 2019-02-08 11:46:03
回答 1查看 111关注 0票数 2

我有一个问题,我无法编辑该页的实际脚本。这意味着我不能添加AngularJS过滤器、指令等等。我非常有限,所以我只能编辑HTML。

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

代码语言:javascript
复制
myArray.filter(x => x.Type == selectedType)

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

这是我最初的目标:

代码语言:javascript
复制
[{
    "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"),我应该可以把这个列表拿回来:

代码语言:javascript
复制
[{
    "id": "random-3",
    "type": "2",
    "name": "Third tag"
}]

看看这个柱塞:https://embed.plnkr.co/yudKIhsB2OQ9Phh0X1am

HTML中的“筛选标记”应该显示基于此条件的筛选标记(在正常的JavaScript语言中工作):

代码语言:javascript
复制
ng-change="vm.FilteredTags = vm.Tags.filter(x => x.type == vm.SelectedValue)"
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-02-08 11:59:03

您可以筛选出与type匹配的vm.SelectedValue属性值。

代码语言:javascript
复制
<p>Filtered tags: {{vm.Tags | filter: {type: vm.SelectedValue}: true }}</p>

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

代码语言:javascript
复制
<div ng-repeat="vm.Tags | filter: {type: vm.SelectedValue}: true as FilteredTags">
   ... your sutff here...
<div>
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54591751

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档