将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));
});
});
答案 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。