我正处在学习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)。在所有情况下,缓存只是一个内存数组。 –