Javascript 角度多选下拉列表和lodash countby

Javascript 角度多选下拉列表和lodash countby,javascript,angularjs,select,lodash,option,Javascript,Angularjs,Select,Lodash,Option,我在这一方面有点茫然,我似乎不太明白 因此,我有一个简单的HTMLSELECT=>option元素,它是从后端填充的,而不是真正相关的tho 我的问题是: 假设我有一个预先制作的对象,例如: { keyName1: 450, keyName2: 800, keyName3: 300 } 我要做的是检查键名是否与我的多选下拉列表中的某个选项值的名称匹配。使用选项上的“ng repeat”来检查值是否来自数组,如果选项值与键匹配,则将数值添加到某种增量变量中,这样我就可以显

我在这一方面有点茫然,我似乎不太明白

因此,我有一个简单的HTMLSELECT=>option元素,它是从后端填充的,而不是真正相关的tho

我的问题是:

假设我有一个预先制作的对象,例如:

{
    keyName1: 450,
    keyName2: 800,
    keyName3: 300
}
我要做的是检查键名是否与我的多选下拉列表中的某个选项值的名称匹配。使用选项上的“ng repeat”来检查值是否来自数组,如果选项值与键匹配,则将数值添加到某种增量变量中,这样我就可以显示找到的“键名”总数

例如,如果用户选择“keyName1”,则递增值总计为450。如果用户选择“keyName1”和“keyName2”,则递增值总计为1250

我不知道如何完成这一点-现在它只是阅读下拉列表中的第一项

下面是执行此操作的代码:

_.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的:所选选择器仅适用于HTML选项: :选定选择器适用于图元。它不适用于复选框或无线电输入;用法:检查它们。

您说我有一个简单的HTMLSELECT=>option元素,它是从后端填充的,但实际上并不相关

这可能是相关的。默认情况下,HTML选项标记不支持多个选择;为了支持这一点,必须显式地将其创建为select multiple。您能否共享该选项的HTML代码,以明确这是一个问题还是一个危险因素

另外,您是否可以回显$scope.widget.instance.settings.serviceContractTypes并进行共享,以确保它实际上与选项文本中的可用内容相匹配

附录-等等,我想我知道了


$'contractType:selected'选择contractType中的所有选定选项并将它们连接起来。然后$'contractType:selected'.text.trim会将其裁剪到第一个单词,这只是第一个选中的选项。您应该执行类似$'contractType:selected'。text.split的操作,然后检查每个类型是否在结果列表中。

Re:现在它只读取下拉列表中的第一项。-你能分享正在这样做的代码吗?@anandsun-oops,抱歉-added该选项的multi-select是一个角度服务,它是作为我们公司应用程序的一部分创建的,我可以分享该代码,但它相当大-我可以告诉你它是有效的,因为我们在应用程序的多个区域使用它。这并不是我真正遇到的问题-我只是想检查所选选项是否与对象中的某个键匹配,如果匹配,请将该键的值添加到递增项中,要显示在页面上。并且尽可能地回显$scope.widget.instance.settings.serviceContractTypes它只是一个像我上面发布的对象-在选项下拉列表中,所述对象的每个键名都是一个选项值,可以选择一个或多个,如果有帮助的话。。。EDIT:jQuery也不需要使用,我只是想弄清楚如何实现这一点,这都是基于您共享的信息,我不明白为什么您的代码不能工作,除非if语句的主体正在做一些您不想做的事情,比如显式设置和值,而不是累加它。奇怪的是,你遇到了问题。对,我也是这么想的-但它只获取第一个选项值first keyName的值,并且不会累积任何其他已选择的选项,甚至不会将其视为已选择…@Lushmoney再看一看-我有主意了?