2

私は次のように定義されたモデルを持っています

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

およびJSのViewModelとして

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

また、ビューモデルを更新する必要があるコールバックがあります。

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

しかし、ko.mapping プラグインのプロパティ 'name' は 'Name' と等しくありません。

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

4

1 に答える 1

2

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

また、大文字と小文字については、シリアル化規則を変更してプロパティを小文字にします。

または、私が行ったことを実行して、ビューモデルで大文字を受け入れることができます。一般的なJavascriptの規則にはあまり適合しませんが、私はそれを「サーバーから取得するプロパティ」として受け入れました。

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

これを使用して、サーバー上でサーバー側のビューモデルを指定および作成し、それらをシリアル化して、ノックアウトモデルにマップします。このようにして、ノックアウトビューモデルの動作にのみ集中できます。

サーバー側のオブジェクトをjavascriptの「オブジェクト」に変換する必要がある場合は、ここで行うように、マッピングオブジェクトにその変換を実装できます。

于 2012-02-13T16:21:59.457 に答える