Gibt es eine Möglichkeit, einen Rückruf zu erhalten, wenn Ember.js alles geladen hat?

7

Ich baue eine Ember.js-App und ich muss einige zusätzliche Einstellungen vornehmen, nachdem alles gerendert / geladen wurde.

Gibt es eine Möglichkeit, einen solchen Rückruf zu bekommen? Danke!

    
jede 30.04.2012, 14:44
quelle

5 Antworten

10

Es gibt auch einige Funktionen, die in Ansichten definiert sind, die überladen werden können und die automatisch aufgerufen werden. Dazu gehören "willInsertElement (), didInsertElement (), afterRender () usw."

Insbesondere finde ich didInsertElement () eine nützliche Zeit, um Code auszuführen, der in einem regulären objektorientierten System im Konstruktor ausgeführt würde.

    
Kevin Bullaughey 01.05.2012, 00:46
quelle
6

Sie können die Eigenschaft ready von Ember.Application verwenden.

Beispiel aus Ссылка :

%Vor%     
LazyBoy 30.04.2012 16:01
quelle
5

LazyBoys Antwort ist, was du machen willst, aber es wird anders funktionieren, als du denkst. Die Formulierung Ihrer Frage hebt einen interessanten Punkt über Ember hervor.

In Ihrer Frage haben Sie angegeben, dass Sie einen Rückruf wünschen nachdem die Ansichten gerendert wurden. Für einen guten 'Ember'-Stil sollten Sie jedoch den' ready 'Callback verwenden, der nach der Initialisierung der Anwendung ausgelöst wird, aber bevor die Ansichten gerendert werden.

Der wichtige konzeptionelle Punkt ist, dass nach der Callback-Aktualisierung des Datenmodells Ember die Ansichten aktualisieren soll.

Die Aktualisierung von ember ist größtenteils unkompliziert. Es gibt einige Randfälle, in denen 'didFoo' -Rückrufe erforderlich sind, um Flimmern in der Ansicht zu vermeiden. (Vermeiden Sie z. B. das Anzeigen von "keine Elemente gefunden" für 0,2 Sekunden.)

Wenn das für Sie nicht funktioniert, können Sie auch den Rückruf 'onLoad' untersuchen.

    
jdar 20.05.2012 16:44
quelle
3

Sie können dafür jQuery ajax-Callbacks verwenden:

%Vor%

Dies wird für alle Ajax-Anfragen funktionieren.

    
ondrejbartas 11.02.2013 21:24
quelle
1

Ich lege das einfach in die Anwendungsroute

%Vor%

Und dann kann ich überall in meiner Vorlage Ladevorgänge mit {{#if isloading}} aktivieren oder deaktivieren oder spezielle jQuery-Ereignisse innerhalb der eigentlichen Ladeaktion hinzufügen.

Sehr einfach, aber effektiv.

    
Paul 09.07.2015 03:12
quelle

Tags und Links