我正處在學習Ember的痛苦緩慢的過程中,並且在非平凡的例子中發現指南和文檔嚴格限制。如何在Ember.js中的控制器之間進行數據通信?
現在我的問題。
給出下面的路由器定義:
App.Router.map(function() {
this.resource('home', function() {
this.resource('weather', function() {
this.route('site', {path: '/:weather_site'});
});
});
當用戶進入home.weather.index路線模型鉤執行並獲取服務器的所有氣象信息。當用戶進入home.weather.some_site時,新路線的模型掛鉤將從服務器中爲該特定站點提供天氣數據。如何防止這種冗餘?換句話說,控制器如何能夠相互交流數據?我應該在每個Route中使用setupController掛鉤來實現這個目標還是有更好的方法?
有沒有什麼好的資源可以幫助我理解進出Ember的數據流?有沒有什麼好的資源可以幫助我更快地學習Ember,而不是深入研究源代碼?
好的,這清除了很多。 (非常感謝您提供的鏈接)。如果我不使用ember-data,我該如何實現這樣的緩存?我的意思是從Ember中「存儲」的服務器獲取的所有記錄在哪裏?這樣的緩存在哪裏存在以便可以從許多控制器獲得? – kliron
沒有一種方法可以實現這樣的緩存。它可以是一個簡單的數組,連接到像App.WeatherController這樣的控制器或像App.WeatherStore這樣的自定義對象。如果它是一個自定義對象,你可能會使用一個初始化工具來設置它並注入到控制器中,例如http://netdyworm.com/blog/2013/04/03/ember-initializers。除此之外,您可能會看到燼數據本身並遵循相同的模式或考慮像[ember-model](https://github.com/ebryn/ember-model)或[EPF](http:// epf .IO)。在所有情況下,緩存只是一個內存數組。 –