保存记录后,Ember更新父路径的模型

时间:2015-01-15 20:10:43

标签: ember.js ember-data

我正在研究Ember应用程序,目的是学习。我已经设置了一个UI,其中首次打开父路线和模板时会显示一个表格,例如左侧列中的今天项目,以及右侧区域的变化:有关项目的详细信息,新/的表单编辑项目,搜索等

我遇到的麻烦是,当我保存新项目时,父路线的左手表不会更新新项目。无法找到让路线刷新的方法。我来的壁橱是在模型上使用pushObject。

事情模板:

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

router.coffee

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

项目路线:

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

项目新路线:

ItemsNewRoute = Ember.Route.extend

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

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

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

项目新控件:

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

1 个答案:

答案 0 :(得分: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();
 }