【发布时间】:2014-11-04 05:55:14
【问题描述】:
我有一个视图模型。从 ajax 调用中检索人员
var vm = ko.mapping.fromJS(persons, {});
vm.Hobbies = ko.observableArray();
// other vm objects
viewModel 加载后显示页面,现在我想将另一部分(爱好)加载到视图模型(工作)
// ...ajax call...
success: function(results){
ko.utils.arrayForEach(results.hobbies, function(item) {
vm.Hobbies.push(item);
});
debugger
}
// ...end ajax call...
在调试器上,我可以看到我的爱好现在已填充。
我有一个在页面加载时加载的视图
<!--ko if: $data.Hobbies-->
<div>
<ul class="fares-by-date-carousel" data-bind="foreach: Hobbies()">
<li>2</li>
</ul>
</div>
<!-- /ko -->
在开始时这部分没有加载(因为尚未调用昂贵的 ajax 调用,这很好) 但是在填充了 vm.Hobbies 之后,上面的 html 部分仍然永远不会显示。
不知道我错过了什么
【问题讨论】:
-
你能不能把
$data.Hobbies改成$root.Hobbies -
...谢谢!成功了,我的范围错了
-
没问题,快速修复总是好的
-
已为未来的访问者发布了更完整的评论版本。
标签: ajax knockout.js