2013-09-04 5 views
7

In meiner Ember.js Anwendung habe ich eine Indexansicht mit einer Liste von verschiedenen Posts. Ich versuche eine "Show" -Aktion zu implementieren, die passiert, wenn auf einen Post geklickt wird. Was es tun sollte, ist eine modale, detailliertere Version des Posts anzuzeigen. Jede modale Ansicht für einen Beitrag sollte auch eine eigene URL haben. Auch die Indexansicht, in der die Posts aufgelistet sind, sollte immer noch hinter dem Postmodal angezeigt werden. Schließlich, wenn die Post modal die URL geschlossen wird, sollte auf den Index URL ändern zurückEmber.js - Rendern modale Ansicht mit URL und übergeordnete Ansicht weiterhin angezeigt

Bisher meine Routen sind so etwas wie folgt aus:

App.Router.reopen 
    location: 'history' 
    rootURL: '/' 

App.Router.map -> 
    @resource 'posts', -> 
    @route 'show', path: '/:post_id' 

App.PostsShowRoute = Ember.Route.extend 
    model: (params) -> 
    App.Post.find(params.post_id) 

Dies ist meine modalen Ansicht (mit ZURB Foundation modal ausklappen)

App.PostsShowView = Ember.View.extend 
    templateName: 'postModal' 
    classNames: ['reveal-modal'] 

    didInsertElement: -> 
    @$().foundation('reveal', 'open') 

Ich bin Rendering in eine Steckdose in meine Indexvorlage, aber mit dem aktuellen Set navigiert es weg von meiner Indexvorlage und rendert nur das Modal. Noch einmal möchte ich das modale Rendering innerhalb der Indexseite mit einer eigenen URL haben und nach dem Schließen zurück zur Index URL gehen.

Antwort

2

Sie können einen zusätzlichen Ausgang für Ihre Anwendung Vorlage für modals hinzufügen, und dann Modalverben in diesen Ausgang machen.

<script type="text/x-handlebars"> 
    {{outlet}} 
    {{outlet modal}} 
</script> 

App.PostShow = Ember.Route.extend({ 
    renderTemplate: function() { 
    this.render('postModal',{outlet:'modal',into:'application'}); 
    } 
}); 
+1

Ich habe die Liste der Beiträge in die Anwendungsindexvorlage (index.hbs) gerendert, die '{{outlet modal}}' enthielt. Die posts.show route rendert sich darauf. Das Verschieben der Liste der Beiträge in die Vorlage für posts.index (posts.hbs) und dann bewegt '{{Auslass modal}}' in die Anwendungsvorlage, wie Sie das Problem gelöst vorschlug. obwohl Ich möchte, dass die Beiträge Liste machen müssen, wenn der Stamm-URL visted ist, ich glaube, ich kann nur die Anwendung Index Route Übergang zur Beiträge Index Route haben. –

Verwandte Themen