javascript - knockout 不创建和observableArray

标签 javascript knockout.js

这个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/

相关文章:

knockout.js - 如何使用 Knockout 从下拉列表中获取所选值

javascript - document.onkeydown 不工作,或只工作一次

php - Joomla 2.5模态弹出组件表单

javascript - 将数据绑定(bind)参数传递给函数 knockout

javascript - knockout js : Lazy load options for select

javascript - 按钮上的单击事件禁用所需 html 的默认行为

javascript - JQuery 创建一个滚动跟随 div

javascript - 在通过 child.print() 打印之前,如何等待图像加载到新窗口中?

javascript - 如何通过PHP动态显示错误信息

javascript - 更改可观察数组会改变自定义绑定(bind)处理程序、knockoutjs 的可见性