use*_*632 2 knockout-mapping-plugin knockout.js
我在使用映射插件时应该在何时何地声明我的viewModel时感到困惑.
这是我的json文件:
{
"members": [
{
"memberid": "001",
"membername": "Jason"
},
{
"memberid": "002",
"membername": "Bob"
}
]
}
Run Code Online (Sandbox Code Playgroud)
这是html模板:
<div data-bind="foreach: members">
<h3 data-bind="text: memberid"></h3>
<p>Name: <span data-bind="text: membername"></span></p>
</div>
Run Code Online (Sandbox Code Playgroud)
其余部分如下:
var data = $.getJSON("members.json",function(data)
{
var viewModel = ko.mapping.fromJSON(data);
ko.applyBindings(viewModel);
}
);
ko.mapping.fromJSON(data, viewModel);
Run Code Online (Sandbox Code Playgroud)
提前感谢你的帮助!
您可能希望在闭包之外声明viewModel,因此它更易于访问.例如:
var viewModel = {};
var data = $.getJSON("members.json",function(data)
{
viewModel.model = ko.mapping.fromJSON(data);
ko.applyBindings(viewModel);
}
);
Run Code Online (Sandbox Code Playgroud)
这将创建viewModel,使其可访问,并公开模型属性(将包含所有映射数据).您可以跳过模型属性,也可以在vm上执行此操作.您甚至可以将applyBindings移到此之外,因为您真的只想运行一次.