0

ページに 2 つのドロップダウンがあります。1 つは準備完了時にロードされ、もう 1 つは最初のドロップダウンが選択された後にロードされます。

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

あなたの説明で

"1 つは準備完了時にロードされ、もう 1 つは最初のドロップダウンが選択された後にロードされます。"

およびあなたの使用:

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

これは、これをコーディングする方法を再考する必要があるように思えます。ノックアウトやその他の JS フレームワークでは、直接 DOM の読み取り/書き込み/変更を行うべきではないことに注意してください。モデルは Knockout JS コードのみで表す必要があります。Knockout が DOM の更新を処理します。さらにコードを提供していただければ、詳細を表示できます。

于 2013-02-04T22:45:39.483 に答える