2

マッピングプラグインを使用するときに、いつどこでviewModelを宣言する必要があるかについて混乱しています。

これが私のjsonファイルです:

{
    "members": [
        {
            "memberid": "001",
            "membername": "Jason"
        },
       {
            "memberid": "002",
            "membername": "Bob"
        }
    ]
}

これがhtmlテンプレートです:

<div data-bind="foreach: members">
<h3 data-bind="text: memberid"></h3>
<p>Name: <span data-bind="text: membername"></span></p>  
</div>

残りは次のとおりです。

var data = $.getJSON("members.json",function(data)  
            {
                var viewModel = ko.mapping.fromJSON(data);
                 ko.applyBindings(viewModel);

            }
        );

ko.mapping.fromJSON(data, viewModel);

よろしくお願いします!

4

1 に答える 1

6

クロージャーの外側でviewModelを宣言したい場合は、よりアクセスしやすくなります。例えば:

var viewModel = {};
var data = $.getJSON("members.json",function(data)  
            {
                viewModel.model = ko.mapping.fromJSON(data);
                 ko.applyBindings(viewModel);
            }
        );

これにより、viewModelが作成され、アクセス可能になり、モデルプロパティ(マップされたすべてのデータが含まれる)が公開されます。モデルプロパティをスキップして、VMで実行することもできます。本当に一度だけ実行したいので、applyBindingsをこれの外に移動することもできます。

于 2012-01-11T19:04:06.527 に答える