将getJson的结果分配给数组

时间:2015-01-12 23:07:26

标签: knockout.js

将getJson调用的结果分配给数组的最佳方法是什么。例如,假设有人可以对此进行硬编码:

 var users = [
 { id: 'Jack', name: 'Jack Smith' },
 { id: 'Jill', name: 'Jill Jones' },
 { id: 'Jane', name: 'Jane Chung' }
 ];

但我想调用以下服务并将其分配给users数组。

 function user(id, name) {
     var self = this;

     self.Id = id;
     self.Name = name;

 }


     $.getJSON("/api/users/", function (data) {
            $.each(data, function (key, val) {
                self.users.push(new user(val.id, val.name));
            });
        });

1 个答案:

答案 0 :(得分:1)

您可以使用jquery $.map函数。

var ViewModel = function (model) {
    var self = this;
    self.users = ko.observableArray();

    $.getJSON("/api/users/", function (data) {
        var mappedUsers = $.map(data, function(item) { return new User(item) });
        self.users(mappedUsers);
    });
};

function User(user) {
     var self = this;

     self.Id = user.id;
     self.Name = user.name;
 }

这是我推荐的knockout tutorial