【问题标题】:Knockoutjs: Populate dropdownKnockoutjs:填充下拉列表
【发布时间】:2015-01-20 16:22:14
【问题描述】:

我有以下带有选择多个属性的下拉列表,我需要将它们转换为普通下拉列表,同时保留它们的功能:

从此:

到这里:

以下是带有绑定的选择下拉菜单:

<select data-bind="click: $root.divisionddupdate, foreach: Products, updateDDPlugin: true" id="divisiondd" multiple="multiple" >
    <option data-bind="value: ID, text: Name"></option>
</select
<select data-bind="click: $root.companiesddupdate, foreach: Partners, updateDDPlugin: true" id="companiesdd" multiple="multiple">
    <option data-bind="value: ID, text: Name"></option>
</select>

下拉列表最初是从 foreach 填充的,单击一个选项时,另一个下拉列表会相应地填充。

我删除了“多个”属性,但是:

问:如何修改我的代码,以便我可以将第一个选项设置为“选择”(即使在更新之后),并且其他下拉菜单中的选项可以在选项更改时更新,而不是在选项单击时更新?

【问题讨论】:

    标签: javascript html asp.net knockout.js


    【解决方案1】:

    使用options 绑定,这就是它的用途。请务必设置optionsCaptionoptionsTextoptionsValue 以及value 绑定。

    它将呈现为带有初始Select 选项集的选择下拉菜单,并将显示每个产品的Name 属性。它将使用ID 属性设置为选定值SelectedProduct

    <select data-bind="options: Products,
                       optionsCaption: 'Select',
                       optionsText: 'Name',
                       optionsValue: 'ID',
                       value: SelectedProduct">
    </select>
    <select data-bind="options: Partners,
                       optionsCaption: 'Select',
                       optionsText: 'Name',
                       optionsValue: 'ID'
                       value: SelectedPartner">
    </select>
    

    如果您需要级联下拉菜单,请让您的 Partners 依赖于 SelectedProduct 并通过 dependent (computed) observable 过滤您的选项。

    【讨论】:

      猜你喜欢
      • 2015-12-11
      • 1970-01-01
      • 2014-05-26
      • 2015-03-14
      • 2019-06-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多