2015-01-15 14 views
5

Tôi đang làm việc trên một ứng dụng Ember với mục đích học tập. Tôi đã đặt trên giao diện người dùng có tuyến đường và mẫu mẹ khi mở lần đầu tiên các tính năng của một bảng, ví dụ: các mục hiện tại trong cột bên trái và khu vực ở bên phải thay đổi: chi tiết về một mục, biểu mẫu cho mới/chỉnh sửa mục, tìm kiếm, v.v.Ember cập nhật mô hình tuyến đường mẹ sau khi lưu hồ sơ

Sự cố tôi gặp phải là khi tôi lưu một mục mới, bảng bên tay trái từ tuyến mẹ không được cập nhật với mục mới. Gặp khó khăn khi tìm cách nhận được tuyến đường đó để làm mới. Tủ quần áo tôi đến là bằng cách sử dụng pushObject trên mô hình.

điều mẫu:

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

router.coffee

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

mục tuyến đường:

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

mục tuyến đường mới:

ItemsNewRoute = Ember.Route.extend 

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

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

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

mục mới điều khiển:

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

Trả lời

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

tuyệt vời! Giúp đỡ rất nhiều. Làm thế nào tôi có thể tìm thêm thông tin về cơ sở này, "this.container.lookup" vv? Tôi đang gặp khó khăn trong việc tìm mọi thứ trong hướng dẫn hoặc tài liệu API. – hourback

+1

là api riêng (chỉ có mã nguồn, không có tài liệu nào khác sau đó nhận xét trong mã) nhưng đôi khi cần tiếp cận để làm những việc nhất định trong ứng dụng của bạn, bạn có thể tìm kiếm bất kỳ thứ gì trong ứng dụng với nó nhưng bạn có nguy cơ gây ra vấn đề giữa nâng cấp ember mới nếu nó được thay đổi bằng cách nào đó như apis riêng có thể thay đổi nhiều như họ cảm thấy phù hợp vì vậy nó không được khuyến khích sử dụng nhiều, chỉ trong những tình huống nhất định theo thời gian như thế này, chủ yếu là tôi chỉ sử dụng nó để xem lên các tuyến trong bộ điều khiển theo thời gian mà tôi cần phải tương tác với – flylib

Các vấn đề liên quan