Нокаут JS -картирование путаница
-
27-10-2019 - |
Вопрос
Я запутался в том, когда и где я должен объявить свою просмотр модели при использовании плагина отображения.
Вот мой файл 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);
Заранее спасибо за вашу помощь!
Решение
Скорее всего, вы хотите объявить свою ViewModel за пределами закрытия, так что она более доступна. Например:
var viewModel = {};
var data = $.getJSON("members.json",function(data)
{
viewModel.model = ko.mapping.fromJSON(data);
ko.applyBindings(viewModel);
}
);
Это создаст ViewModel, сделает ее доступной и выставит свойство модели (которое будет содержать все отображенные данные). Вы могли бы пропустить свойство модели и просто сделать это на виртуальной машине. Вы можете даже переместить ApplyBindings вне этого, так как вы действительно хотите, чтобы это было только один раз.
Не связан с StackOverflow