Angular multi-select 下拉列表和 lodash countby
Angular multi-select dropdown and lodash countby
我在这一方面有点空白,我似乎不太明白。
所以我有一个简单的 HTML select => 从后端填充的选项元素(虽然不是很相关)
我的问题是:
假设我有一个这样的预制对象:
{
keyName1: 450,
keyName2: 800,
keyName3: 300
}
我想做的是检查键名称是否与我的多 select 下拉列表中的选项值的名称相匹配(值来自数组,使用 'ng-repeat'选项),如果选项值与键匹配,则将数字值添加到某种增量变量中,这样我就可以显示找到的 'keyNames' 的总数。
例如 - 如果用户 selects 'keyName1' 增量值总计为 450。如果用户 selects 'keyName1' 和 'keyName2'增量值总计为 1,250。
我不知道如何完成此操作 - 现在它只读取下拉列表中的第一项。
这是执行此操作的代码:
_.forEach($scope.widget.instance.settings.serviceContractTypes, function (type) {
// if item in array matches what is selected in multi-select option
if(type === $('#contractType:selected').text().trim()) {
// do stuff
}
});
希望这一切都有意义,非常感谢您提供的任何方向...
(不用lodash,我用惯了)
jQuery 的 :selected select 或仅适用于 HTML 选项:
"The :selected selector works for elements. It does not work for checkboxes or radio inputs; use :checked for them."
(https://api.jquery.com/selected-selector/)
你说"I have a simple HTML select => option element which is populated from the back-end (not really relevant tho)"
这可能是相关的。默认情况下,一个 HTML 选项标签不支持多个 selection;为了支持它,它必须明确地创建为 select 倍数。您能否分享该选项的 HTML 代码,以明确这是一个问题还是一个转移注意力的问题?
此外,您能否回显 $scope.widget.instance.settings.serviceContractTypes 并分享以确保它实际上与选项文本中的可用内容匹配?
附录 - 等等,我想我明白了!
$('#contractType:selected') selects #contractType 中的所有 selected 选项并将它们连接起来。然后 $('#contractType:selected').text().trim() trims this down to the first word, which is just the first select编辑选项。您应该执行 $('#contractType:selected').text().split(" ") 之类的操作,然后检查每种类型是否在结果列表中。
我在这一方面有点空白,我似乎不太明白。
所以我有一个简单的 HTML select => 从后端填充的选项元素(虽然不是很相关)
我的问题是:
假设我有一个这样的预制对象:
{
keyName1: 450,
keyName2: 800,
keyName3: 300
}
我想做的是检查键名称是否与我的多 select 下拉列表中的选项值的名称相匹配(值来自数组,使用 'ng-repeat'选项),如果选项值与键匹配,则将数字值添加到某种增量变量中,这样我就可以显示找到的 'keyNames' 的总数。
例如 - 如果用户 selects 'keyName1' 增量值总计为 450。如果用户 selects 'keyName1' 和 'keyName2'增量值总计为 1,250。
我不知道如何完成此操作 - 现在它只读取下拉列表中的第一项。
这是执行此操作的代码:
_.forEach($scope.widget.instance.settings.serviceContractTypes, function (type) {
// if item in array matches what is selected in multi-select option
if(type === $('#contractType:selected').text().trim()) {
// do stuff
}
});
希望这一切都有意义,非常感谢您提供的任何方向...
(不用lodash,我用惯了)
jQuery 的 :selected select 或仅适用于 HTML 选项: "The :selected selector works for elements. It does not work for checkboxes or radio inputs; use :checked for them." (https://api.jquery.com/selected-selector/)
你说"I have a simple HTML select => option element which is populated from the back-end (not really relevant tho)"
这可能是相关的。默认情况下,一个 HTML 选项标签不支持多个 selection;为了支持它,它必须明确地创建为 select 倍数。您能否分享该选项的 HTML 代码,以明确这是一个问题还是一个转移注意力的问题?
此外,您能否回显 $scope.widget.instance.settings.serviceContractTypes 并分享以确保它实际上与选项文本中的可用内容匹配?
附录 - 等等,我想我明白了!
$('#contractType:selected') selects #contractType 中的所有 selected 选项并将它们连接起来。然后 $('#contractType:selected').text().trim() trims this down to the first word, which is just the first select编辑选项。您应该执行 $('#contractType:selected').text().split(" ") 之类的操作,然后检查每种类型是否在结果列表中。