【发布时间】:2015-11-17 02:10:58
【问题描述】:
我有一个标签输入框,similar to this,但我需要将其限制为允许的组合。
以下是可能的组合示例:
[{
"Combo": [
{
"Id": 1,
"Name": "Tag1"
},
{
"Id": 3,
"Name": "Tag3"
}
]
},
{
"Combo": [
{
"Id": 2,
"Name": "Tag2"
},
{
"Id": 3,
"Name": "Tag3"
},
{
"Id": 4,
"Name": "Tag4"
}
]
}]
我首先获取一个不同的标签列表并将它们显示给用户。选择标签后,我需要通过传递的组合过滤标签。因此,如果我选择 Tag3,我应该得到 Tag1、Tag2 和 Tag4 的可用标签。我能够通过遍历数组数组并通过 id 数组获取组合的索引来完成此操作。像这样:
ids.indexOf(combos[a].Combo[c].Id) !== -1
但是问题是当我将 Tag2 添加到 id 数组时,indexOf 仍然包含第一个组合,因为 Id:3。我想要的是找到具有匹配或更多 Id 的组合。
所以当我通过这个时:
var ids = [3, 2];
我想要这个组合:
[{
"Combo": [
{
"Id": 2,
"Name": "Tag2"
},
{
"Id": 3,
"Name": "Tag3"
},
{
"Id": 4,
"Name": "Tag4"
}
]
}]
这有点乱,但这是我一直在研究的 jsfiddle 示例。 http://jsfiddle.net/4L3kr052/
【问题讨论】:
-
您能否详细说明“我需要通过传递的组合过滤标签。”?
标签: javascript angularjs indexof angularjs-filter