繁体   English   中英

Knockout.js返回未定义

[英]Knockout.js returns undefined

我试图从ajax获取一些用户数据,并在html中返回它以更新UI。 由于某种原因,我无法使其正常工作。

我的淘汰赛如下:

function User(data) {
    this.name = ko.observable(data.name);
    this.email = ko.observable(data.email);
}

function UserViewModel() {
    // Data
    var self = this;
    self.users = ko.observableArray([]);
    self.newTaskText = ko.observable();
    self.incompleteTasks = ko.computed(function() {
        return ko.utils.arrayFilter(self.users(), function(user) { return !user.email() });
    });


    // Load initial state from server, convert it to Task instances, then populate self.tasks
    $.getJSON("/admin/ajax-get-add-user-json.do", function(allData) {
        var mappedTasks = $.map(allData, function(item) { return new User(item) });
        self.users(mappedTasks);
        console.log(allData);
        console.log(allData.name);
    });
}

ko.applyBindings(new UserViewModel());

然后我在html中像这样返回它:

<ul data-bind="foreach: users, visible: users().length > 0">
    <li data-bind="text: email"></li>
    <li data-bind="text: name"></li>
</ul>

但是,当我使用console.log作为.name时,它将在控制台中返回undefined。 而且它也不会在HTML中打印任何内容。

我在这里做错了什么?

您需要读取所有数据的响应属性:

function(allData) {
    var data = allData.response;
    var mappedTasks = $.map(data, function(item) { return new User(item) });
    self.users(mappedTasks);
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM