0

我的页面中有两个下拉菜单。一个在准备就绪时加载,另一个在选择第一个下拉列表后加载。

var ViewModel = function() {
   var self = this;
   self.DropDownA = ko.observableArray();
   self.DropDownB = ko.observableArray();
   self.selectedDDA = ko.observable();
   self.selectedDDB = ko.observable();

   $.getJSON("api/GetA",function(result) {
      ko.mapping.fromJS(result,{},self);
   });
   self.selectedDDA.subscribe(function(value) {
      $.getJSON("api/GetB/value",function(result) {
          ko.mapping.fromJS(result,{},self);
   });
   });
}

现在我的问题是,如果 A 和 B 的值设置为隐藏值,我如何预加载选定的值?我试过这个但它不起作用:

self.selectedDDA( $("#hiddenValue").val());

请帮忙。谢谢!

4

2 回答 2

0

我想知道...您在哪里设置该值。我可能会确保在填充数据后设置它

 $.getJSON("api/GetA",function(result) {
     ko.mapping.fromJS(result,{},self);
     self.selectedDDA( $("#hiddenValue").val());
 });
于 2013-02-04T22:38:47.553 回答
0

根据你的描述

“一个在准备就绪时加载,另一个在选择第一个下拉列表后加载。”

以及您的使用:

self.selectedDDA( $("#hiddenValue").val());

这听起来像你可能需要重新考虑你是如何编码的。请注意,在淘汰赛或其他一些 JS 框架中,您真的不应该直接进行 DOM 读/写/更改。您应该仅在 Knockout JS 代码中表示您的模型。Knockout 将为您处理 DOM 更新。如果您提供更多代码,我可以显示更多详细信息。

于 2013-02-04T22:45:39.483 回答