首页 > 解决方案 > 启用选择控件的某些选项,使用敲除基于对象数组的某些属性禁用其余选项

问题描述

我是淘汰新手,想使用选择表单控件并根据数组中对象的属性启用一些选项绑定到选择控件。

绑定到选择表单控件的对象数组如下:

soldRequestBuyerType = 
[{id: 0, description: "Highest Bidder at Auction", status: "false"}
{id: 1, description: "Nominate Another Buyer", status:"true"}
{id: 2, description: "Book to Selling Agent", status:"true"}];

如果绑定对象的状态属性为 true,则应启用该选项以进行选择,如果为 false,则应禁用该选项。

请帮助我使用敲除提供与选择控件的绑定。

标签: data-bindingknockout.jsform-control

解决方案


您可以使用计算的 observable 来完成此操作:

function ViewModel() {
    var vm = this;

    vm.soldRequestBuyerType = [
        { id: 0, description: "Highest Bidder at Auction", status: false },
        { id: 1, description: "Nominate Another Buyer", status: true },
        { id: 2, description: "Book to Selling Agent", status: true }
    ];

    vm.availableSoldRequestBuyerType = ko.pureComputed(() => {
        return vm.soldRequestBuyerType.filter((value) => value.status);
    });
}

工作小提琴:https ://jsfiddle.net/thebluenile/p86La5d3/

如果您愿意,您实际上也可以使status属性可观察,然后选择菜单将在这些更改时自动更新。


推荐阅读