2013-11-24 34 views
0

我正在Ember.js中構建數據報告應用程序,並且我有兩個選擇框(兩個組件),它們爲當前選擇日期範圍(僅限月)顯示數據。從Ember.js中的選擇框動態更改當前的ajax查詢查詢

select框被改變,服務器被另一個請求命中並且所有的數據從給定的時間段重新加載時,會發生什麼情況。但我不知道如何讓路線的model方法重新運行 - 我想有效地觀察change事件select

我試圖做這樣的事情:

Dashboard.MonthlyReviewRoute = Ember.Route.extend({ 
    query: {}, 
    model: function(params) { 
     console.log(params); 
     var args = { page: 'monthly_review' }; 
     args = Ember.merge(args, {}); 
     return this.store.find('report', args); 
    }, 
    setupController: function(controller, model) { 
     controller.set('model', model); 
     controller.set('report', model.get('content')[0]); 
    } 
}); 

然後

Dashboard.SelectComponent = Ember.Component.extend({ 
    tagName: 'select', 
    change: function(e) { 
     Dashboard.MonthlyReviewRoute.query.value = 5; 
    } 
} 

但我怎麼得到的模型重新加載?

仍然讓我的頭圍繞這個事件驅動的東西,所以任何幫助非常感謝,請原諒我,如果我沒有得到真正的基本..。

回答

1

轉換到路由併發送ID /過濾器到它。

從您的組件中,您應該發送一個操作,更改並提供必要的信息。從你的控制器/路由中,他們應該有一個處理髮送操作的動作。然後,他們可以執行transitionToRoute/transitionTo併發送路由和ID /過濾器以用於路由。

http://emberjs.jsbin.com/utuhAKo/1/edit

+0

我期待着看到它 - 謝謝! – ACGray

+0

這是一個簡單的例子。 – Kingpin2k

+0

令人驚歎。過渡到路線是我失蹤的位 - 再次感謝 – ACGray