路由处理程序和ember数据的查询如何通信?

时间:2017-10-26 19:24:44

标签: ember.js

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进行通信。

1 个答案:

答案 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需要一些时间才能完成,但回答了许多常见问题。

希望有所帮助!