我有一个 1406 的数组,其中每个对象都有三个字符串属性。但它永远不会在Chrome中呈现,只是冻结页面。 它在IE中工作得很好。 问题发生在 push.apply 上。 我正在使用敲除.js 2.20。 为什么这需要很长时间? 我将一个项目发送到数组中,它工作正常。 KNOCKOUT 不应该能够处理数组中的 1406 个项目吗?
<div data-bind="foreach: powerSchoolCourses">
<div data-bind="html: courseName"></div>
</div>
var convertedPowerSchoolCourses = ko.utils.arrayMap(powerSchoolCourses, function (jsonArrayFromService) {
return new PowerSchool(item);
});
self.powerSchoolCourses.push.apply(self.powerSchoolCourses, convertedPowerSchoolCourses );
function PowerSchool(data) {
var self = this;
self.courseName = ko.observable(data.courseName);
self.courseNumber = ko.observable(data.courseNumber);
self.id = ko.observable(data.id);
}
关于此代码:
var convertedPowerSchoolCourses =
ko.utils.arrayMap(powerSchoolCourses, function (jsonArrayFromService) {
return new PowerSchool(item);
});
我认为您可能为arrayMap函数提供了错误的参数。 第一个参数应该是来自服务的原始数据,第二个参数中的函数具有应在函数内部使用的参数。 所以我认为你真正需要做的是:
var convertedPowerSchoolCourses =
ko.utils.arrayMap(jsonArrayFromService, function (item) {
return new PowerSchool(item);
});
我应该首先这样做。 重新启动我的电脑对 Chrome 做了一些事情。 现在工作正常,很抱歉造成混乱。 规则#1如果某些内容无法正常工作,请始终重新启动计算机。