1

ノックアウトを使用してサーバー側から保存されたオプションをロードしようとしています。以下の一般的な考え方を参照してください。

私は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();*
}

フォームは問題なく保存できますが、データベースに保存されたフォーム フィールドを読み込もうとすると、バインドが機能しません。

誰かが同じ問題を経験したことがある場合は、教えてください。どうすれば修正できますか?

4

2 に答える 2

0

aaberg による回答は正しいですが、一度にすべてをロードする必要があると言っている場合は、ノックアウト マッピング プラグインを使用してこれを自動化することをお勧めします: http://knockoutjs.com/documentation/plugins-mapping.html

呼び出しは次のようになります。

ViewModel = ko.mapping.fromJS(requestFromServer);
于 2012-06-26T15:36:54.487 に答える
0

あなたのフォームはオブザーバブルです。オブザーバブルを設定するときは、それをメソッドとして呼び出し、値をパラメーターとして解析するように設定する必要があります。このようなもの:

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

データベースからフォームをロードした場合、フォームは次のようになります。

self.Request.Form(myLoadedForm);
于 2012-06-26T11:54:34.420 に答える