Emberjs scrollen Sie nach oben, wenn die änderung anzeigen
Wenn der Haupt-anzeigen für meine Anwendung ist umschaltbar (neue route, verbindet die Steckdose meiner Bewerbung controller) ich möchte, dass die Seite gescrollt werden, an die Spitze. Ansonsten ist es ein bisschen seltsam, dass ich das navigieren zu einer anderen Seite-wie der Ansicht und der viewport ist noch irgendwo verloren, wo ich aufgehört habe.
Ich gehackt eine Lösung und Frage mich, ob es eine bessere Möglichkeit oder hat jemand die gleiche Sache.
Hier ist was ich tun:
App.ApplicationController = Ember.Controller.extend({
connectOutlet: function(){
window.scrollTo(0, 0);
this._super.apply(this, arguments);
}
});
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sollten Sie wahrscheinlich versuchen und erweitern
Ember.Route
und fügen Sie Ihrewindow.scrollTo
imenter
Rückruf. Dann anstelle der Verwendung von EmberRoute
für Ihr Blatt Routen, rufen Sie Ihre route .extend()
, so werden Sie automatisch nach oben scrollen, wenn Sie geben Sie eine route/Staat. Etwas ähnliche dieser:macht es Sinn?
Ember.Route
ist, die Sie würde overtiring dieenter
Funktion für alle Routen. Sie vielleicht wollen, halten Sie die original-Funktionalität in das framework und der Erweiterung auf Ihrem eigenen lib.Route#enter
ist ein privates Haken, die Sie verwenden solltenRoute#activate
. In jedem Fall stellen Sie sicher, Sie rufenthis._super.apply(this, arguments);
innerhalb Ihrer Methode.@Baruch ' s Lösung ist gut, aber wenn ich es umgesetzt hatte ich die Anzeige auf Elemente innerhalb meiner Anwendung, Staat und würde einen scrollTop, wenn es nicht notwendig war.
Ich fand, dass dies sehr viel effektiver als läuft er nur über den Pfad ändern:
Ich erreichte dies mit dem folgenden code:
Kaffee-Skript:
Javascript:
Es ist jetzt
render(name, options)
, und wenn Sie speziell den Aufruf render (dh mit einer modal), die Sie übergeben möchten, dass super()