如何设置淘汰赛中下拉列表的值?

时间:2013-02-04 20:21:01

标签: knockout.js knockout-mapping-plugin

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

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());

请帮忙。谢谢!

2 个答案:

答案 0 :(得分:0)

我想知道......你在哪里设定这个价值。我可能会确保在填充数据后设置它

 $.getJSON("api/GetA",function(result) {
     ko.mapping.fromJS(result,{},self);
     self.selectedDDA( $("#hiddenValue").val());
 });

答案 1 :(得分:0)

根据您的描述

  

“一个加载就绪,另一个加载第一个下拉列表   被选中。 “

和你的使用:

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

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