Knockout: оповещение на основе свойства списка объектов в опции выбора - PullRequest
0 голосов
/ 06 сентября 2018

Я знаю, что это простое изменение, но я не смог достичь его, несмотря на исследования и попытки многих вещей.И я новичок в нокауте.У меня есть эта опция выбора списка объектов Payors, который имеет IsValueChecked логическое свойство.

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

Я хочу создать предупреждение, если IsValueChecked равно true, однако значение, которое яЯ обновляю InsuranceId.Я пытаюсь добиться этого, подписавшись на InsuranceId.

vm.InsuranceId.subscribe(function (newValue) {
    //doing something here
}

Как мне написать эту логику?

1 Ответ

0 голосов
/ 06 сентября 2018

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");
}
...