2012-02-13 8 views
2

してくださいには、次のことを解決する方法を、私はお勧め:ノックアウトマッピングを使用してプロパティを別のプロパティにマップする方法はありますか?

私はまた

var vm = { 
    name : ko.observable() 
} 

として

public class Model 
{ 
    public string Name { get; set;} 
} 

とJSでのViewModelとして定義されたモデルを持って、私はすべきコールバックを持っていますビューモデルを更新する:

function callback(data) 
{ 
    ko.mapping.fromJS(data, {}, viewModel); 
} 

しかし、ko.mapping p luginプロパティ 'name'は 'Name'と等しくありません。

「名前」から「名前」へのマッピングを定義する方法はありますか?

答えて

2

まず、マッピングプラグインがそれを追加するため、nameプロパティをviewModelに指定する必要はありません。

ケーシングでは、シリアル化規則を変更してプロパティを小文字にします。

または、私が行ったことを行い、ビューモデルで大文字を受け入れることができます。一般的なJavascriptの規約ではうまく座っていませんが、私はそれを「サーバーから来るプロパティ」として受け入れました。

マッピングから作成されたものと、ビューモデルのものに使用されたものを知ることはかなり便利だとわかりました。もちろん、あなたのビューモデルでは、サーバー生成/マップされたプロパティは表示されませんが、そこに表示されます。

これを使用して、サーバー側のビューモデルを指定してサーバー上に作成し、シリアル化してノックアウトモデルにマップします。このように私はノックアウトビューモデルの振る舞いにのみ集中することができます。

あなたはjavascriptの「オブジェクト」に任意のサーバー側のオブジェクトを変換する必要がある場合、私はhere

+0

は、[OK]を行うように、あなたは、マッピングオブジェクトにその変換を実装することができ、私が参照してください。 しかし、JSONシリアライザの属性を追加して、クライアント側の命名規則に従ってサーバー側のプロパティをシリアライズすることで指定できますか? –

+1

あなたはこれをチェックすることができます:http://stackoverflow.com/a/6288726/444118 –

関連する問題