5

私は KnockoutJs を使用していますが、その素晴らしい機能が 1 つ必要なのですが、それがわかりません。

  1. JSON データを返す get リクエストを行います。Knockout ViewModel と同じプロパティです。
  2. マッピング プラグインを使用して、JSON の結果を Knockout ビューモデルに変換します。

それは正常に動作しますが、もちろん、ノックアウト ビューモデルで定義されたメソッドを失います。

マッピングを使用してメソッドを保持できるようにするにはどうすればよいですか?

どうもありがとうございました!

アップデート

これは単なるサンプルです。構文エラーがあるかもしれませんが、私がやろうとしていることを示すはずです。

マイ JavaScript

var MyViewModel = function () {
    var self = this;

    self.id = ko.observable();
    self.subModels = ko.observableArray();

    self.doSomething = function () {
        alert("Hello from " + self.id());
    };
};

var MySubViewModel = function () {
    var self = this;

    self.id = ko.observable();

    self.doSomething = function () {
        alert("Hello from " + self.id());
    };
};

私の c# モデル

public class MyViewModel
{
    public int Id { get; set; }
    public List<MySubViewModel> SubModels { get; set; }
}

public class MySubViewModel
{
    public int Id { get; set; }
}

私のサーバーの結果

return new MyViewModel
        {
            Id = 1,
            SubModels = new List<MySubViewModel>
                                {
                                new MySubViewModel { Id = 1 },
                                new MySubViewModel { Id = 2 }
                                }
        };
4

1 に答える 1

3

ko マッピング プラグインを使用している場合は、json オブジェクトをビューモデル内のモデルにマッピングできます。たとえば、人のリストを取得する場合は、json を viewModel.people にマップできます。そうすれば、ビューモデルの他のプロパティをそのままにしておくことができます。

于 2012-07-20T17:48:20.153 に答える