ノックアウトJSマッピングプラグインの混乱
-
27-10-2019 - |
質問
マッピングプラグインを使用するときに、いつ、どこで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);
よろしくお願いします!
解決
閉鎖の外でビューモデルを宣言したいので、よりアクセスしやすいです。例えば:
var viewModel = {};
var data = $.getJSON("members.json",function(data)
{
viewModel.model = ko.mapping.fromJSON(data);
ko.applyBindings(viewModel);
}
);
これにより、ViewModelが作成され、アクセス可能になり、モデルプロパティが公開されます(マッピングされたすべてのデータが含まれます)。モデルプロパティをスキップして、VMでも実行できます。あなたは本当にそれが一度だけ実行されることを望んでいるので、あなたはこれの外にApplyBindingsを移動することもできます。
所属していません StackOverflow