model()请求如何查找来自' rental'的所有数据?或../ models / rental.js?
model() {
return this.get('store').findAll('rental'); // 'rental' refers to ../models/rental.js?
}
model()调用将从适配器中定义的/ api / rental获取数据。但是/models/rental.js如何与数据存储进行通信并与api调用一起工作?
在快速入门教程中,它说
The store service is injected into all routes and components in Ember.
It is the main interface you use to interact with Ember Data.
我只是试图围绕路由处理程序和ember数据如何从a到z进行通信。
答案 0 :(得分:0)
当您从路由的store
挂钩向Model
询问model()
的数据时,会使用Adapter
来确定如何拨打后端。通常为整个应用程序配置适配器,但您可以在模型级别覆盖适配器。
引用the guide:
在创建新应用程序时默认包含的Ember Data是一个与Ember紧密集成的库,可以轻松地从服务器检索模型作为JSON,将更新保存回服务器,并在浏览器。
由于使用了适配器模式,Ember Data可以配置为使用许多不同类型的后端。整个适配器生态系统允许您的Ember应用程序与不同类型的服务器通信,而无需编写任何网络代码。
当收到HTTP响应时(假设是REST适配器),Ember Data然后使用Serializer
来解析传入的有效负载。 Serializer
使用Model
中指定的记录定义,然后将有效负载中找到的记录添加到store
。
这是我对其工作方式的高级解释......我建议ember guides需要一些时间才能完成,但回答了许多常见问题。
希望有所帮助!