Ich versuche, die Route zu ändern, um einige gemeinsame Aktion anzuwenden, sobald gerendert. Die Idee ist, eine Funktion ähnlich der onload
zu haben, aber da wir eine Single-Page-App verwenden, muss dies bei jeder Routenänderung ausgelöst werden. (Könnte auf die neue Ansicht scoped werden)Verweisende Route ändern, um zu gelten gleich
Ich fand, wie die currentpath Änderungen zu beachten:
App.ApplicationController = Ember.Controller.extend({
currentPathDidChange: function() {
prettyPrint()
}.observes('currentPath');
});
Das funktioniert zwar gut in einigen Fällen, wird es ausgelöst wird, wenn die Route ändert, aber immer noch zu früh zu Wenden Sie Inhaltsänderungen so an, wie es scheint, bevor der Inhalt gerendert wird.
Irgendeine Idee über die beste Praxis, um dieses Ziel zu erreichen?
Ich habe eine Antwort hinterlassen, aber ich würde vorschlagen, dass es in vielen Fällen ein Anti-Pattern ist, wenn Sie auf die Ansichten warten müssen, um mit dem DOM zu meckern. Vielleicht gibt es einen besseren Ort, um die DOM-Manipulation, die Sie gerade machen, zu platzieren, wie das 'didInsertElement' einer Ansicht? –
Wenn Sie die Ansichten implementieren, können Sie das in ['didInsertElement'] (http://emberjs.com/api/classes/Ember.View.html#event_didInsertElement) tun. – MilkyWayJoe