Ich habe eine Single Page-Anwendung, die Knockout für die Datenbindung verwendet. Die Ansicht "CAApproval.html" in meiner Einzelseitenanwendung hat im ViewModel-Code ein beobachtbares Array namens "AllCertificates". Es füllt auf der Seite gut aus. Wenn Sie von der Ansicht weg navigieren, indem Sie auf einen Link im Abschnitt navigation.html der Seite klicken und dann zur CAApproval-Seite zurückkehren, befinden sich die Werte des vorherigen Besuchs immer noch im ObservableArray von AllCertificates und werden daher in der CAApproval-Ansicht angezeigt.So löschen Sie den Inhalt eines ObservableArray, das von früheren Besuchen einer Ansicht ausgefüllt wurde
Ich muss den Inhalt des observablearray AllCertificates jedes Mal löschen, wenn ein Benutzer auf die CAApproval-Seite zurückkehrt, die dieses observablearray verwendet. Wenn ein Benutzer die Seite verlässt und zurückkommt, ist der Inhalt des observablearray null und daher nein Daten werden auf dem Bildschirm angezeigt. Hier sind die Highlights meines Viewmodels Code-
define(['services/logger', 'durandal/system', 'durandal/plugins/router', 'services/CertificateDataService','controls/Lucas'],
function(logger, system, router, CertificateDataService) {
var allCertificates = ko.observableArray([]);
var activate = function() {
// go get local data, if we have it
return SelectAllCerts(),SelectMyCerts(), GetCertificateDetails(), GetDDABankNums();
};
var vm = {
activate: activate,
allCertificates: allCertificates,
SelectAllCerts: SelectAllCerts
});
return vm;
function SelectAllCerts() {
return CertificateDataService.getallCertificates(allCertificates);
}
});
Wie lösche ich den Inhalt eines observablearray jedesmal, wenn die Seite ein Benutzer auf dieser Seite kommt (nicht, wenn innerhalb der Seite zu navigieren selbst, um nur den observablearray, wenn die Benutzer kommt von einer separaten Seite)?
Perfect! Vielen Dank. Es wird immer noch benutzt, um zu knockout. – Chris
Wow. Ich habe seit über 2 Tagen nach einer ähnlichen Antwort gesucht. Vielen Dank dafür! –