我有一个问题,我无法编辑该页的实际脚本。这意味着我不能添加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"
}]看看这个柱塞:https://embed.plnkr.co/yudKIhsB2OQ9Phh0X1am
HTML中的“筛选标记”应该显示基于此条件的筛选标记(在正常的JavaScript语言中工作):
ng-change="vm.FilteredTags = vm.Tags.filter(x => x.type == vm.SelectedValue)"发布于 2019-02-08 11:59:03
您可以筛选出与type匹配的vm.SelectedValue属性值。
<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>https://stackoverflow.com/questions/54591751
复制相似问题