2012-05-08 13 views
0

私は最後の日のためにこれで私の頭を掻いてきました。誰かが光を放つことを願っています。私は単純なjavascriptオブジェクトを持っています - データ - JSON.stringify(data)はこのように返します。空の配列を返すKnockout.JSマッピング?

{ 
    "dataList": [ 
     { 
      "Id": 0, 
      "Name": "0", 
     }, 
     { 
      "Id": 1, 
      "Name": "1", 
     } 
    ] 
} 

また、私は本当にシンプルなノックアウトビューモデルを持っています。

var viewModel = { 
      dataList: ko.observableArray([]) 
     }; 

次に、docサイトごとに簡単なknockout.JSマッピング呼び出しを行います。

私は私のViewModelは今のDataListメンバーを持つことが期待される
ko.mapping.fromJS(data, viewModel); 

(それがない)(それはないです!)2の配列です。代わりに、私は空の配列を取得します。私はここでマッピングに何が欠けていますか?

答えて

2

viewModelオブジェクトにプロパティを定義する必要はありません。マッピングプラグインがそれらを作成します。ただ、などのViewModelを宣言:

var viewModel = ko.mapping.fromJS(data); 

http://jsfiddle.net/vqaVT/

あなただけが更新する必要がある他のコール、ko.mapping.fromJS(data, viewModel)サーバから更新されたデータを使用してのViewModelを作成する必要があります。

+0

興味深いです。私はあなたのフィドルで気づいた.dataList() - これはなぜ今の機能ですか?それはマッピングに適していますか? – XeroxDucati

+0

正しいと思われる - バインディングの仕事...非常に奇妙 – XeroxDucati

+0

はい、マッピングプラグインはプロパティを入力からobservablesまたはobservableArraysにマップします。 – Tuan

関連する問題