Anwenden von Knockout-Extendern nach dem Mapping

8

Ich habe ein Problem damit, Observablen einen Knockout-Extender hinzuzufügen, nachdem sie erstellt wurden. Im folgenden Beispiel wird der Extender immer dann auf foo ausgeführt, wenn sich der Wert wie erwartet ändert, aber nur einmal beim ersten Aufruf für bar .

%Vor%

Im Wesentlichen mappe ich ein großes JSON-Objekt und möchte Extender hinzufügen, nachdem das Mapping bei einigen der Eigenschaften aufgetreten ist. Gibt es einen einfachen Weg, dies zu tun?

Unten sehen Sie ein Problem mit dem Problem:

Ссылка

    
sWW 07.06.2013, 14:14
quelle

1 Antwort

8

Das Problem, das Sie haben, ist, dass der Extender ein neues beobachtbares Objekt erstellt (basierend auf dem Observable, das es erweitert). Und dieses neue Observable wird in deinem zweiten Aufruf von extend nicht verwendet.

Um dies zu beheben (ohne den Code des Extenders zu ändern) können Sie die Antwort vom Aufruf von extend auf die gleiche Eigenschaft, die sie nennt, zuweisen.

Mit anderen Worten, fügen Sie self.bar = vor Ihrer letzten Zeile hinzu, um dies zu haben:

%Vor%     
Mariano Desanze 15.06.2013, 04:05
quelle

Tags und Links