Javascript 删除下拉列表-使用布尔值

Javascript 删除下拉列表-使用布尔值,javascript,knockout.js,Javascript,Knockout.js,我正在开发一个下拉控件,该控件由布尔值驱动。我有一个viewmodel,它由lookup数据集数组(值和文本属性)和一个包含布尔值的数据集组成,布尔值需要与数组中选择的值对齐。因此,viewmodel中的数据表示实际的数据项,而LookUpdatea本质上表示值对的映射。为了使每个数据项只包含与之相关的信息,这两个项确实需要保持相互独立 我已经能够得到一个示例,我将IsActive带到数据对象的外部,因为它存在于viewmodel中,并将其放置在viewmodel中,但是当它在viewmodel

我正在开发一个下拉控件,该控件由布尔值驱动。我有一个viewmodel,它由lookup数据集数组(值和文本属性)和一个包含布尔值的数据集组成,布尔值需要与数组中选择的值对齐。因此,viewmodel中的数据表示实际的数据项,而LookUpdatea本质上表示值对的映射。为了使每个数据项只包含与之相关的信息,这两个项确实需要保持相互独立

我已经能够得到一个示例,我将IsActive带到数据对象的外部,因为它存在于viewmodel中,并将其放置在viewmodel中,但是当它在viewmodel中时,我无法让它工作。我已经创建了一个JSFIDLE,它在功能上演示了我希望用户看到的内容,以及我将数据放在它所属的位置,但下拉菜单并没有按预期工作

活动映射为true,非活动映射为false。在这些选项之间切换也会影响屏幕上的单词true/false


价值:
可供替代的
价值:
功能项(id、名称){
this.id=ko.可观察(id);
this.name=ko.observable(name);
}
函数getLookUpdatea(){
var lookupdatea={};
lookUpdatea.status=[{
文本:“活动”,
值:true
}, {
文本:“非活动”,
值:false
}];
返回lookupdatea;
}
createImplantedViewModel=函数(数据,lookUpdateA){
var vm={};
vm.data=ko.可观察(数据);
vm.IsActive=ko.可观察(假);
vm.lookUpdatea={};
vm.lookUpdatea.status=ko.observearray(lookUpdatea.status);
返回虚拟机;
};
调试器;
var editImplantVm=CreateImplantEditViewModel({
IsActive:错误
},
getLookUpdatea());
应用绑定(editImplantVm);
谢谢你的帮助


~David

如果我理解您试图做什么,那么您的问题在于您正在传递给“createImplantedViewModel”构造函数的数据。您需要将iActive创建为可观察对象,否则它将永远不会更新:

var editImplantVm = CreateImplantEditViewModel({
    IsActive: ko.observable(false)
},
getLookupData());

我已经更新了,当您更改所选选项时,这两个下拉列表现在都会更新其关联的文本绑定。

这里的问题实际上是布尔值正在转换为字符串值。要使其工作,值必须是字符串或数字

var editImplantVm = CreateImplantEditViewModel({
    IsActive: ko.observable(false)
},
getLookupData());