根据knockout.js中的条件设置下拉默认值

根据knockout.js中的条件设置下拉默认值,knockout.js,Knockout.js,我试图将下拉列表与可观察数组绑定,并根据条件设置所选项目,但所选值未得到更新 相同的代码为: function Item(id, name) { this.id = ko.observable(id); this.name = ko.observable(name); } var viewModel = function(){ var self= this; self.test = ko.observable('a'), self.selectedItem = ko.computed(func

我试图将下拉列表与可观察数组绑定,并根据条件设置所选项目,但所选值未得到更新

相同的代码为:

function Item(id, name) {
this.id = ko.observable(id);
this.name = ko.observable(name);
}

var viewModel = function(){
var self= this;
self.test = ko.observable('a'),
self.selectedItem = ko.computed(function () {
    var tempreview = self.test();        
    if (tempreview === "a") {
        return ko.observable("2");
    }
    else
        return ko.observable("3");

}),
self.items = ko.observableArray([new Item(3, "")])
};

var vm = new viewModel();
vm.items([new Item(1, "pencil"),
    new Item(2, "pen"),
    new Item(3, "marker"),
    new Item(4, "crayon")
]);
ko.applyBindings(vm);


<select data-bind="options: items, optionsText: 'name', optionsValue: 'id', value:selectedItem"></select>

<div data-bind="text: selectedItem"></div>
功能项(id、名称){
this.id=ko.可观察(id);
this.name=ko.observable(name);
}
var viewModel=函数(){
var self=这个;
自测试=可观察的(“a”),
self.selectedItem=ko.computed(函数(){
var tempreview=self.test();
如果(临时审查==“a”){
可观察的回报(“2”);
}
其他的
可观察的回报(“3”);
}),
self.items=ko.observearray([新项目(3,”))
};
var vm=new viewModel();
虚拟项目([新项目(1,“铅笔”),
新项目(2,“pen”),
新项目(3,“标记”),
新项目(4,“蜡笔”)
]);
ko.应用绑定(vm);
Jsfiddle链接是://Jsfiddle.net/sajesh1985/c7MCh/2/

谢谢,
Sajesh

在您的
选择的编辑项中,只需返回“2”或“3”,而不是可观察的:

self.selectedItem = ko.computed(function () {
    var tempreview = self.test();        
    if (tempreview === "a") {
        return '2';
    }
    else
        return '3'

}),

请不要只是提供你的代码在小提琴总是包括在你的问题的相关部分!