【问题标题】:Remove an option in dropdown list knockout js删除下拉列表淘汰js中的选项
【发布时间】:2018-10-16 20:19:02
【问题描述】:

您好,有什么方法可以在初始加载时从剔除下拉列表中删除一个选项。

<select data-bind="options: Reasons,  optionsText: 'Title', optionsValue: 'Id', value: SelectReason,
optionsCaption: 'Choose..', optionsAfterRender: setOptionRemove"></select>

viewmodel 中的代码,我正在尝试使用 optionsAfterRender,

        self.setOptionRemove= function(option, item) {
            if(item.Id == 1){
            ko.applyBindingsToNode(option, { remove: item.remove}, item);
             }
         }

我想将第一个选项用作单选按钮。

谢谢。

【问题讨论】:

    标签: knockout.js knockout-2.0 knockout-mvc


    【解决方案1】:

    也许您可以将列表绑定到一个计算列表,该计算将排除列表中您不想要的选项,而不是尝试删除它。

    self.filteredReasons = ko.computed(function() {
         return ko.utils.arrayFilter(self.Reasons(), function(reason) {
              if(reason.Id !== 1) {
                   return true;
              }
         });
    });
    

    更新绑定:

    <select data-bind="options: filteredReasons ,  optionsText: 'Title', optionsValue: 'Id', value: SelectReason, optionsCaption: 'Choose..'"></select>
    

    【讨论】:

    • 成功了!你太棒了@DaveB 我在上面的代码中唯一需要编辑的不是reason.Id,我必须使用reason.Id()
    猜你喜欢
    • 2013-02-14
    • 2014-06-06
    • 2019-03-14
    • 2014-05-20
    • 2015-04-24
    • 1970-01-01
    • 2012-01-17
    • 2016-03-20
    • 2014-07-31
    相关资源
    最近更新 更多