Debug Aurelia ViewModel ähnlich wie ko.toJson

8

in knockoutjs können Sie das ViewModel in einem netten json-Format zum Debuggen ausgeben

%Vor%

wenn es einen Weg gibt, das gleiche in Aurelia zu erreichen

    
Moes 03.09.2015, 02:07
quelle

3 Antworten

13

Sie könnten ein benutzerdefiniertes Element erstellen.

Hier ist ein Beispiel: Ссылка

app.html

%Vor%

app.js

%Vor%

debug.html

%Vor%

debug.js

%Vor%

Ergebnis

    
Jeremy Danyow 03.09.2015, 07:50
quelle
3

Am ehesten habe ich einen Wertkonverter definiert. Also in json.js habe ich

%Vor%

dann in meiner Sicht-Modell index.js Ich habe meine Daten:

%Vor%

und schließlich die Ansicht index.hml bindet und verwendet den Konverter:

%Vor%

Ich bin jedoch im Moment über den Mangel an Live-Binding zwischen dem Modell und dem HTML ratlos, so dass dies Ihre Frage möglicherweise nicht vollständig beantwortet?

    
Phil 03.09.2015 20:11
quelle
2

Als Ergänzung zur Antwort von Jeremy Danyow können Sie auch ein benutzerdefiniertes Bindungsverhalten für ein bestimmtes Attribut des Ansichtsmodells anstelle des ganzen Ansichtsmodells. Dies hat den Vorteil, dass Sie die Kontrolle über die Elemente haben, die Sie sehen möchten. Daher können Sie das Problem mit zirkulären Abhängigkeiten vermeiden (wenn Sie nur die Elemente sehen, die kennen sind nicht kreisförmig ...)

Definieren Sie zuerst einen JsonValueConverter (der gleiche wie der in Phils Antwort):

%Vor%

Dann das Bindungsverhalten. Beachten Sie, dass sich die Bindung über ein benutzerdefiniertes Signal benachrichtigt, um mit umfangreichen Modellupdates fertig zu werden.

%Vor%

Sie können beide Klassen in derselben Datei speichern, z. %Code%. Dann fordern Sie es in Ihrer Vorlage:

%Vor%

... oder als globale Ressource verfügbar machen.

Hier ist ein Beispiel: Ссылка

Sie könnten die Signalisierung auch zu einem zweiten benutzerdefinierten Verhalten extrahieren, so wie es Jeremy Danyow in dieser SO-Antwort getan hat. Mit dieser Stelle würden Sie einfach tun:

%Vor%     
dmoebius 24.11.2016 22:10
quelle