我不确定为什么我的foreach部分不起作用?第一个数据绑定文本:Id正在工作。
淘汰赛:
import Knockout from 'knockout';
function ViewModel() {
var self = this;
self.Id = ko.observable();
self.Sections = ko.observableArray();
};
var viewModel = new ViewModel();
ko.applyBindings(viewModel);
$.getJSON("/api/projects/3455", function(data) {
console.log(data);
viewModel.Id(data.Id);
viewModel.Sections(data.Sections);
});
HTML:
<div data-bind="text: Id">
<div data-bind="foreach: Sections">
<div data-bind="text: Id"></div>
</div>
</div>
返回JSON:
答案 0 :(得分:3)
问题在于您的html中第一个text
绑定,因为它会替换您的顶级div
元素的整个内容,而您将失去您的foreach。
所以你需要在顶部div中移动文本绑定:
<div>
<div data-bind="text: Id"></div>
<div data-bind="foreach: Sections">
<div data-bind="text: Id"></div>
</div>
</div>
如果您不想使用额外的div
:
<div>
<!-- ko text: Id --><!-- /ko -->
<div data-bind="foreach: Sections">
<div data-bind="text: Id"></div>
</div>
</div>