这个fiddle显示映射到函数的用户列表,在该函数中,围绕 Angular 色创建了一个 observableArray。由于某种原因,这些映射用户的控制台日志仅将 Angular 色显示为和数组。
不知道为什么?!
var userModel = function (data) {
var self = this;
self.FirstName = data.FirstName;
self.LastName = data.LastName;
self.Email = data.Email;
self.ContactTel = data.ContactTel;
self.ContactMob = data.ContactMob;
self.Username = data.Username;
self.Roles = ko.observableArray(data.Roles);
};
映射:
self.users = ko.observableArray([]).map(model, userModel);
我的 observableArray 扩展:
ko.observableArray.fn.map = function (data, Constructor) {
var mapped = $.each(data, function (i, e) { return new Constructor(e); });
this(mapped);
return this;
};
最佳答案
当你应该使用 $.map 时,你却使用了 $.each
ko.observableArray.fn.map = function (data, Constructor) {
var mapped = $.map(data, function (i, e) { return new Constructor(e); });
this(mapped);
return this;
};
另请查看映射插件。不要重新发明轮子
关于javascript - knockout 不创建和observableArray,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24516234/