Bei der Zuordnung von ko.mapping.fromJS sind die Werte null

7

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

    
happyZZR1400 15.01.2013, 11:28
quelle

2 Antworten

21

Es ist passiert, weil ko.mapping.fromJS die folgende Signatur hat:

%Vor%

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: Ссылка

    
Artem Vyshniakov 15.01.2013, 12:01
quelle
5

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%     
Stokedout 15.01.2013 11:51
quelle