我知道这是一个简单的改变,但尽管研究和尝试了很多事情,我仍然无法实现它。我是 knockout 的新手。
我有一个对象列表 Payors
的选择选项,它具有 IsValueChecked
bool 属性。
<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
}
如何编写这个逻辑?
最佳答案
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");
}
关于javascript - knockout : Alert based on property of list of objects on select option,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52209004/