2015-01-15 13 views
5

Ich bin mit der Absicht des Lernens auf einer Ember Anwendung arbeiten. Ich habe auf einem UI gefassten wo ein Elternteil Route und Vorlage, wenn zunächst eine Tabelle, zum Beispiel der heutigen geöffnet kennzeichnen Elemente in der linken Spalte, und eine Fläche auf den rechten Flügel variiert: Details zu einem Elemente, Form für neue/Element bearbeiten, suchen usw.Ember Update Eltern Route des Modells nach speichern Rekord

die Mühe, die ich in laufen haben, ist, dass, wenn ich ein neues Objekt speichern, wird die linke Hand Tabelle aus der übergeordneten Route nicht mit dem neuen Element aktualisiert. Probleme haben, einen Weg zu finden, um diese Route zu aktualisieren. Der Schrank, den ich kam, war mit PushObject auf dem Modell.

Dinge Vorlage:

{{partial "things/table"}} 
{{outlet}} 

router.coffee

@resource "items", -> 
     @route "item", {path: "/:item_id"} 
     @route "new", {path: "/new"} 

Artikel Route:

ItemsRoute = Ember.Route.extend(
    model: -> @store.find 'item' 
) 

Artikel neue Route:

ItemsNewRoute = Ember.Route.extend 

    renderTemplate: -> 
     this.render('items/form') 

    model: -> 
     @store.createRecord('item') 

    setupController: (controller, model)-> 
     controller.set('model', model) 

Artikel neue Controller:

ItemsNewController = Ember.ObjectController.extend(
    needs: 'items' 

    actions: 
     submit: -> @model.save().then(console.log('saved'(, console.log('failed'))    
     cancel: -> @transitionTo('items') 

    transitionAfterSave: (-> 
     if @get('content.id')  
      @transitionToRoute('items.item', @get('content')) 
    ).observes('content.id') 

Antwort

7
submit: -> @model.save().then(this.didSave.bind(this), console.log('failed')); 

didSave: function() { 
    console.log('saved'); 
    var route = this.container.lookup("route:items.index"); // use the name of route you want to refresh 
    route.refresh(); 
} 
+0

Wonderful! Riesige Hilfe. Wie kann ich mehr über diese Einrichtung finden, "this.container.lookup" usw.? Ich habe Schwierigkeiten, etwas in den Leitfäden oder den API-Dokumenten zu finden. – hourback

+1

es ist ein private api (nur Quellcode, keine docs andere dann Kommentare in Code), aber manchmal benötigt um zu erreichen, bestimmte Dinge in Ihrer App zu tun, können Sie alles in der App mit ihm nachschlagen können, aber Sie das Risiko, dass laufen verursacht Probleme zwischen dem neuen glut-Upgrades, wenn es geändert wird irgendwie als privater apis so viel verändern kann, wie sie fit fühlen, so ist es nicht viel zu verwenden, nur in bestimmten Situationen von Zeit zu Zeit wie diesen zu empfehlen, vor allem ich es nur, um zu sehen Routen von Zeit zu Zeit in Controller, mit denen ich interagieren muss – flylib

Verwandte Themen