使用knockout在下拉列表中设置类型模型的选定选项

时间:2012-06-25 22:48:30

标签: asp.net-mvc-3 drop-down-menu knockout.js

我正在尝试从服务器端加载已淘汰的已保存选项,请参阅下面的一般提示,

我在javascript中有以下类:

funcion Request() {  
    this.Id = ko.observable('');  
    this.Name = ko.observable('');  
    this.Form = ko.obsevable('');  
}

function Form() {
    this.Id = ko.observable('');
    this.Name = ko.observable(''); 
}

这是我的viewModel

function RequestViewModel() {
    var self = this;
    self.Request = new Request();
    *self.Request.Form = new Form();*
}

我可以毫无问题地保存表单,但是当我尝试加载保存到数据库中的表单字段时,绑定不起作用。

如果有人遇到过同样的问题,请告诉我如何解决?

2 个答案:

答案 0 :(得分:0)

你形成是一个可观察的。设置observable时,应将其作为方法调用,并将该值解析为参数。像这样:

function RequestViewModel() {
    var self = this;
    self.Request = new Request();
    self.Request.Form(new Form());
}

如果您已从数据库加载表单,它应如下所示:

self.Request.Form(myLoadedForm);

答案 1 :(得分:0)

aaberg的答案是正确的,但是如果你说你需要一次性加载它们,我建议你使用knockout mapping插件自动执行此操作:http://knockoutjs.com/documentation/plugins-mapping.html

你的电话会是这样的:

ViewModel = ko.mapping.fromJS(requestFromServer);