ember.js - definieren der route mit dem optionalen parameter und default-Modell
Ich möchte eine route definieren, die in emberjs, mit einem optionalen parameter
eg:
/video
und
/video/123
wenn kein parameter angegeben wird, möchte ich einen Standard-Modell/Befestigung.
wenn ein parameter angegeben wird, dann möchte ich natürlich nachschlagen das Modell mit Hilfe der parameter.
wenn dann gehe ich einen anderen Weg, und zurück, um die route ohne parameter, ich möchte das zuvor geladene Modell.
zB:
startup app
/video
- zeigt mein Standard - /Leuchte-Modell
/video/123
- zeigt Modell 123
/another-route
- zeigt neue route
/video
- zeigt Modell 123
ist das möglich?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Gibt es einen sauberen Weg, dies zu tun, obwohl es etwas "tricky". Die Idee ist die Verwendung einer geschachtelten Reiseroute zu halten, die id, aber nicht Rendern, anstatt mit der Eltern-route verantwortlich für das Rendern es mit den render-Helfer. Wenn Sie es auf diese Weise, alle die Logik kann Leben in VideoChoiceController, und es wird verwendet für die Anzeige von entweder der Standard-video-oder ein spezifischer. Wenn auf diese Weise tun, es müssen nicht explizit an Sie "erinnern" das Letzte video, die state-Maschine, die die route-engine stellt es für Sie tut.
{{render 'video.choice' defaultVideo}}
. Dann können Sie VideoChoiceRoute Rendern als normal. Dies könnte tatsächlich besser sein & weniger "tricky".Landete ich mit einer anderen Lösung:
Diesen Strecken Unterstützung:
/video
- zeigt mein Standard - /Leuchte-Modell/video/123
- zeigt Modell 123Wenn der Benutzer Zugriff auf
/video
, die VideoIndexRoute umleiten muss, um VideoItemRoute ohne id.Nun, die VideoItemRoute zu prüfen, ob es irgendein Modell verbunden ist, und wenn es fehlt, sollte man die nutzen, die Standard-Armaturen oder eine neue.
Jeden Fall, Sie haben zu tun, etwas ein wenig funky, wie die Speicherung der letzten video in einige Globale variable, aber das ist bis zu Ihnen.
http://emberjs.jsbin.com/uhoQozu/1/edit
http://emberjs.jsbin.com/uhoQozu/1#/video
http://emberjs.jsbin.com/uhoQozu/1#/video/32
renderTemplate
, und der Umgang mit den überschneidungen zwischen den videoModel-und video-Steuerungen, etc.