Knockout.js 每个observableArray的敲除似乎不适用于对象数组
我不知道为什么我的foreach部分不工作?第一个数据绑定文本:Id正在工作 淘汰赛:Knockout.js 每个observableArray的敲除似乎不适用于对象数组,knockout.js,Knockout.js,我不知道为什么我的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(
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);
});
<div data-bind="text: Id">
<div data-bind="foreach: Sections">
<div data-bind="text: Id"></div>
</div>
</div>
HTML:
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);
});
<div data-bind="text: Id">
<div data-bind="foreach: Sections">
<div data-bind="text: Id"></div>
</div>
</div>
返回的JSON:
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);
});
<div data-bind="text: Id">
<div data-bind="foreach: Sections">
<div data-bind="text: Id"></div>
</div>
</div>
问题在于html中的第一个
文本
绑定,因为它替换了顶级div
元素的全部内容,而您失去了foreach
因此,您需要将文本绑定移动到顶部div中:
<div>
<div data-bind="text: Id"></div>
<div data-bind="foreach: Sections">
<div data-bind="text: Id"></div>
</div>
</div>
哦,很好,这是问题帖子中不可预测的视图代码。然而,即使我也期望您所建议的行为,似乎也没有覆盖顶级
Id
的内容。有什么想法吗?@Jeroen最初你的身份证上有什么并不重要。KO文本绑定“使用您的参数值将元素的内容设置为文本节点。任何以前的内容都将被覆盖。”因此,当您调用KO时,内部元素将丢失。applyBindings
啊,是的,您是对的,我没有正确解释我自己的示例。我的错<代码>s/松动/丢失/