Ich arbeite mit knockoutjs und versuche, die ViewModel-Instanz aus JSON-Daten zu füllen. Laut der Dokumentation von knockoutj kann ich diese Aussage verwenden:
%Vor%Hier mein Code:
%Vor%aus irgendeinem Grund Daten nicht gefüllt (pledgeVMinstance.name () ist nicht definiert) es sei denn, ich ändere die Aussage zu:
%Vor%Vielleicht kann mir jemand erklären warum Dinge gehen so.
Danke
Es ist passiert, weil ko.mapping.fromJS
die folgende Signatur hat:
Wo data
- ist Ihre Json-Daten, mappingOptions
- ist die Anweisungen zum Mapping-Plug, wie Sie Ihr Datum zuordnen, viewModel
- ist Objekt, um zugeordnete Daten zu speichern.
ko.mapping.fromJS(data)
- Diese Syntax erstellt das Ansichtsmodell.
ko.mapping.fromJS(data, mappingOptions
) - Dies erstellt ein Ansichtenmodell mit bestimmten Optionen.
ko.mapping.fromJS(data, {}, viewModel)
- und dieser setzt Ihre Daten ohne Zuordnungsoptionen um und zeigt sie dem Modell an.
Lesen Sie die Dokumentation zum besseren Verständnis: Ссылка
Basierend auf dem Lesen der Dokumentation auf der Webseite von Knockout glaube ich, dass ich anrufe:
%Vor%Erstellt automatisch ein ViewModel. Dies bedeutet, dass Sie ein ViewModel nicht selbst deklarieren müssen, da das Mapping-Plugin eines mit beobachtbaren Eigenschaften erstellt.
Nachdem Sie dies für das erste Mal aufgerufen haben, können Sie dann
verwenden %Vor%Um Ihre ViewModel-Daten zu aktualisieren, sagen Sie, nachdem Sie mehr Daten über eine Ajax-Anfrage geladen haben.
Die Lösung, um dies zu beheben, sollte sein:
%Vor%Tags und Links knockout.js knockout-mapping-plugin