2015-01-15 14 views
5

Sto lavorando su un'applicazione Ember con l'intento di apprendere. Ho impostato un'interfaccia utente in cui un genitore percorso e modello alla prima apertura presenta una tabella di, ad esempio, gli articoli di oggi nella colonna a sinistra e un'area a destra che varia: dettagli su un elemento, modulo per nuovo/modifica articolo, ricerca, ecc.Ember aggiornare il modello del percorso principale dopo il salvataggio del record

Il problema che ho riscontrato è che quando salvi un nuovo elemento, la tabella di sinistra della rotta principale non viene aggiornata con il nuovo elemento. Avere difficoltà a trovare un modo per ottenere quel percorso da aggiornare. L'armadio che ho usato era usando pushObject sul modello. modello

cose:

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

router.coffee

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

articoli percorso:

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

articoli nuova rotta:

ItemsNewRoute = Ember.Route.extend 

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

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

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

articoli nuovo 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') 

risposta

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

Meraviglioso! Enorme aiuto Come posso trovare ulteriori informazioni su questa struttura, "this.container.lookup" ecc.? Ho difficoltà a trovare qualcosa nelle guide o nei documenti API. – hourback

+1

è un'API privata (solo codice sorgente, nessun documento altro quindi commenti nel codice) ma a volte è necessario raggiungere per fare determinate cose nella tua app, puoi cercare qualsiasi cosa nell'app con esso, ma corri il rischio che questo causi problemi tra i nuovi aggiornamenti ember se vengono modificati in qualche modo come apis privato può cambiare tanto quanto si sentono in forma quindi non è consigliabile utilizzare molto, solo in certe situazioni di volta in volta in questo modo, per lo più lo uso solo per guardare su rotte in controller di volta in volta con cui ho bisogno di interagire – flylib

Problemi correlati