使用KnockoutJS中的选项绑定为下拉列表中的某些选项添加类

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用KnockoutJS中的选项绑定为下拉列表中的某些选项添加类相关的知识,希望对你有一定的参考价值。

我正在阅读来自我的控制器中的呼叫的选项json。我将可观察数组绑定到我的下拉列表,它工作得很好。但是我想根据json中的一个变量为列表中的一些选项添加一个类。这是我的html选择:

<select data-bind="value: sellerID, options: $root.sellers, optionsValue: 'Value', optionsText: 'Text', optionsCaption: ' -- select a student --', disable: disableSeller" class="form-control" id="sellerSelect" name="sellerId"></select>

这是我的淘汰赛:

在里面:

var groups = @Html.Raw( Json.Encode(ViewBag.GroupDetail.SellerGroup) );
sellerViewModel = new SellerViewModel(groups, "", 10);
ko.applyBindings(sellerViewModel, $("#studentInfo")[0]);

设置选项列表:

$(data.sellers).each(function(index, element) {
  sellerViewModel.sellers.push({Text: element.lastName + ", " + element.firstName, Value: element.sellerId})
});

在最后一段代码中,element有一个名为dateVerify的变量。如果dateVerify不为null,我想在选择列表中为该选项添加一个类,所以我可以为它添加不同的颜色。

答案

不确定它是否是最优雅的方式,但根据淘汰赛docs,有一个optionsAfterRender回调,允许您在添加选项后执行自定义操作。您可以使用jQuery / vanilla JS /无论如何添加所需的类。

optionsAfterRender: function(option, item) {
    if(!item.dateVerify) {
        $(option).addClass("some-class");
    }
}

显然,你需要修改它以更准确地适合你的代码,但我认为这正是你正在寻找的。

以上是关于使用KnockoutJS中的选项绑定为下拉列表中的某些选项添加类的主要内容,如果未能解决你的问题,请参考以下文章

导出 const 值在下拉列表中未绑定

Knockoutjs:如何使添加到列表中的输入值也可观察

Laravel,为选择下拉列表中的选项添加不同的html属性

kendo 下拉列表在下拉列表中显示选项标签

如何将数据库中的特定值显示为第一个下拉列表选择选项

将敲除中的下拉菜单绑定到对象