【发布时间】:2018-09-04 16:08:41
【问题描述】:
我的 .html 页面中有一个下拉列表作为多选:
<select class="form-control"
multiple
ng-model="filter.types"
ng-change="onChange()"
ng-options="option for option in filterOptions.types">
{{option}}
</select>
在我的控制器中,我有 onChange 函数:
$scope.onChange= function(newOptionSelected){
console.log(newOptionSelected);
}
这里我想将当前项目添加到选定的 filter.types 中。 我怎么能做到这一点?
如果是单选,我可以简单地将 ng-model 传递给 onChange 函数。
<select class="form-control"
ng-model="filter.type"
ng-change="onChange(filter.type)"
ng-options="option for option in filterOptions.types">
{{option}}
但是如何通过多选来实现呢?
有什么想法吗? :)
如果添加的选项是“全部”,我想删除所有选定的元素。如果选择了“全部”选项,那么当我选择下一项时,我只需要删除“全部”选项。
【问题讨论】:
-
究竟是什么阻止了您选择模型? Demo
-
可以,但我想知道当前将哪个元素添加到所选选项的数组中。因为如果选择的选项是“全部”,我想清空数组并只留下“全部”选项。如果索引大于 0,我可以搜索 indexOf('all) 并删除所有元素。但是,如果我选择了“全部”并且我想选择不同的东西,它将无法工作。如果我知道当前添加的项目是“全部”,我可以全部删除。如果是不同的东西,我可以删除“全部”选项。
-
嗯,这对你的问题来说是一个很好的补充,我建议你用这个信息编辑它
-
当我使用辅助数组解决这个问题并检查“all”的索引是否已经在所选选项中时。不过不是很好,希望能找到更好的选择。
标签: javascript angularjs select multiple-select