2017-05-17 1 views
0

Ich habe eine Funktion, wo ich ajax call und ich bekomme die Daten im Callback. So etwas wie diesesWie Array von Objekten von Ajax Aufruf zu beobachtbaren Array kopieren?

function loadData(callback) { 
    //do ajax 
    if(callback) { 
     callback(data.data); 
    } 
} 

Und wenn ich die Funktion wie

nennen
loadData(function(data) { 
    return data; 
}) 

es gibt die Daten die ich brauche. Wie kann ich alle Objekte und ihre Schlüssel/Werte in eine self.dataset = ko.observableArray([]); kopieren So kann ich die Daten verwenden, wo immer ich will?

+0

Sie könnten das Mapping pluggin verwenden: http://knockoutjs.com/documentation/plugins-mapping.html –

+1

'loaddata (self.dataset)' schreibt in die beobachtbare Array – user3297291

Antwort

0

Wie ich tut, ist es durch den Knockout Mapping Plugin verwenden und den fromJSON Befehl (möglicherweise müssen fromJS verwenden, um auf Ihrem Datenformat abhängig) diese bilden die Daten, wie es aus der Quelle kommt.

function loadData() { 
    $.ajax({ 
     url: 'http://...', 
     dataType: 'json', 
     success: function (data) { 
      ko.mapping.fromJSON(data, {}, self.dataArray); 
     } 
    }); 
}