2015-01-12 117 views
0

將getJson調用的結果分配給數組的最佳方式是什麼?例如,可以說一個人可以硬編碼:將getJson的結果分配給數組

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

但我想調用以下服務,並將其分配給用戶數組。

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

您可以使用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,我建議經歷。