Ich versuche, Elemente aus dem Server Observable Array in Knockout hinzuzufügen.Warum kann ich keine Daten zu beobachtbaren Array in knockout concut
Hier ist meine Viewmodel:
function ArticlesViewModel() {
var self = this;
this.listOfReports = ko.observableArray([]);
self.loadReports = function() {
$.get('/router.php', {type: 'getReports'}, function(data){
for (var i = 0, len = data.length; i < len; i++){
self.listOfReports.push(data[i]);
}
}, 'json');
};
self.loadReports();
};
Und es funktioniert perfekt. Aber ich weiß, dass ich zwei Arrays in Javascript unter Verwendung concat() und soweit ich weiß concat works in knockout zusammenführen kann. Wenn ich also versuche, meine for-Schleife durch oder self.listOfReports.concat(data);
zu ersetzen, erscheint nichts auf dem Bildschirm.
Im ersten Fall gibt es keinen Fehler, im zweiten Fehler sagt mir, dass es keine Methode concat gibt.
Also wie kann ich die Daten ohne meine Schleife concat. Und ich würde wirklich glücklich sein zu hören, warum meine Methode nicht
arbeitet
ObservableArrays unterstützen die Concat-Methode nicht, es gibt ein offenes Problem dazu: https://github.com/knockout/knockout/issues/786 – Tanner
Seltsam, weil ich dachte, dass in [diese Frage] (http: // stackoverflow.com/q/19221174/1090562) eine Person ist beobachtbare Array. Soweit ich das verstanden habe, ist der Ansatz (Looping und Pushing) der beste? –
Ich könnte mich dann irren, ich neige immer dazu, die Loop/Push-Methode zu verwenden – Tanner