【发布时间】:2015-01-15 13:37:33
【问题描述】:
我有一个淘汰赛 foreach 绑定,可以生成多个下拉列表,包括单选和多选。我不知道会有多少下拉菜单。
所有下拉列表都填充了相同数据类型但已过滤的项目,但是我想从一个 observableArray 中的所有下拉列表中收集所有选定的项目。将相同的 observableArray 绑定到 foreach 循环中的所有下拉列表不起作用,因为它被添加到 observableArray 并立即被其他下拉列表删除。
<script id="multiselect" type="text/html">
<select class="multi-select" multiple="multiple" data-bind="options: Items, optionsText: 'Name', optionsValue: 'Guid', selectedOptions: $root.selectedItems"></select>
</script>
<script id="singleselect" type="text/html">
<select class="single-select" data-bind="options: Items, value: $root.selectedItems"></select>
</script>
<div class="separator">
<!-- ko foreach: distinctItemTypes -->
<label data-bind="text: ItemType.Name"></label>
<div>
<!-- ko template: { name: Count > 1 ? 'multiselect' : 'singleselect' } --><!-- /ko -->
</div>
<!-- /ko -->
</div>
这可能吗?或者最好的方法是什么?
【问题讨论】:
标签: javascript knockout.js drop-down-menu ko.observablearray