0

次の行があります。

 $.getJSON('@Url.Action("RegistrationShareClassReport", new { id = ViewBag.Id })', function (data) {
        viewModel.RegistrationShareClassReport(data);
    });

これは基本的に、さまざまな要素を含む json 形式でデータを返します。例えば

id = "2",
name = "tj",
country = "GB"

id = "3",
name = "pj",
country = "IT"

私がしたいのは、そのビューモデルから、各アイテムのすべての国の配列を作成することです。したがって、ビューモデル データをループして、それぞれの国を抽出する必要があります。

ノックアウト.jsでこれを達成できることを知りたかったですか?

ありがとう

4

1 に答える 1

1

Knockoutマッピングプラグイン(http://knockoutjs.com/documentation/plugins-mapping.html)を使用して、jsonをビューモデルにマッピングできます。

ここにあなたが始めるためのいくつかのコードがあります。自分のニーズに合わせて調整します。

<script type="text/javascript">
    $.getJSON("/data.json", function (data) {

        var viewModel = {};

        var mapping = {
            "countries": {
                key: function (data) {
                    return ko.utils.unwrapObservable(data.name);
                }
            }
        };

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

        ko.applyBindings(viewModel);
    });
</script>

そしてHTMLで:

<ul data-bind="foreach: $root">
    <li data-bind="text: name"></li>
</ul>
于 2012-06-05T12:13:30.867 に答える