Setzen Sie die Arbeitsfläche zurück und laden Sie sie mit JSON in Fabric.js neu

7

Ich baue so etwas wie das KitchenSink-Beispiel, außer dass ich mehrere Ansichten haben kann.

Ссылка

Visitenkarte: Vorder- und Rückseite

Während der Bearbeitung speichere ich den JSON regelmäßig.

Wenn Sie die Rückseite bearbeiten möchten, ohne die Seite neu zu laden (weil ich AngularJS verwende), wie lösche ich die aktuelle Zeichenfläche und lade neues JSON neu?

Ich lade gerade den JSON, klicke Change View, starte canvas.clearContext() und lade den neuen JSON neu. Dies funktioniert nicht so, wie ich es erwartet habe.

Aktualisieren

Ich verwende eine Direktive, um diese Arbeitsfläche zu verwalten. Ich machte die Anweisung instanziieren, wenn JSON verfügbar war und wenn ich versuchte, es aus irgendeinem Grund zu aktualisieren, würde nicht funktionieren.

Ich habe das entfernt und die Direktive initialisiert sich leer und jetzt lade ich einfach json via service. Yay!

    
Michael J. Calkins 17.01.2014, 04:29
quelle

1 Antwort

22

Normalerweise löscht canvas.loadFromJSON() die gesamte Leinwand, bevor neue Objekte geladen werden. Andernfalls können Sie canvas.clear(); ausführen.

Ссылка

Wie laden Sie Ihren JSON?

So etwas sollte funktionieren:

%Vor%

Nach dem Laden von JSON ist es wichtig, canvas.renderAll() aufzurufen. Im zweiten Parameter von canvas.loadFromJSON(json, callback) können Sie eine cllback-Funktion definieren, die aufgerufen wird, nachdem alle Objekte geladen / hinzugefügt wurden.

Ссылка

    
Kienz 17.01.2014, 07:59
quelle

Tags und Links