淘汰赛:警报基于 select 选项上的 属性 对象列表

Knockout: Alert based on property of list of objects on select option

我知道这是一个简单的改变,但尽管研究并尝试了很多东西,我还是没能实现它。我是淘汰赛的新手。 我有对象列表 Payors 的这个 select 选项,它有 IsValueChecked 布尔值 属性.

<select name="InsuranceId" data-bind="options:Payors , 
                                      optionsValue: 'Id', 
                                      optionsText: 'Text', 
                                      value:InsuranceId"> 
</select>

如果 IsValueCheckedtrue,我想创建一个警报,但是我正在更新的值是 InsuranceId。我试图通过订阅 InsuranceId.

来实现这一点
vm.InsuranceId.subscribe(function (newValue) {
    //doing something here
}

这个逻辑怎么写?

Payors 必须是数组或 observableArray,具有您要从中选择的选项。

当您订阅 InsuranceId 时,您将获得所选的 Id。使用它来过滤 Payors.

vm.Payors = ko.observableArray([
    {IsValueChecked : false, Id : 1, Text: 'False'},
    {IsValueChecked : true, Id: 2, Text: 'True'}
]);

vm.InsuranceId.subscribe(function (newValue) {
    var boolean = vm.Payors().find(function(payorObject){
         if (newValue === payorObject.Id) {
             return payorObject.IsValueChecked;
         }
    });
    if (boolean) alert ("IsValueChecked is true");
}