2015-01-12 2 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입니다.