如何使用Ember适配器

时间:2014-01-20 03:03:59

标签: ember.js adapter

为什么'Todos.ApplicationAdapter = DS.FixtureAdapter.extend();'替换为'   Todos.ApplicationAdapter = DS.LSAdapter.extend({     命名空间:“todos-emberjs”   }); '可以在当地的商店实现吗?

'namespace:'todos-emberjs“'是什么意思?

有多少种适配器?我应该如何使用它们?如何定义适配器?

1 个答案:

答案 0 :(得分:2)

(Check out the picture here to see where ADAPTER component fits in)

我最近刚刚阅读了EmberJS教程,并从我的理解:

1)什么是EmberJS适配器? 适配器是负责应用程序和服务器之间通信的对象。每当您的应用程序要求商店提供没有缓存的记录时,它都会向适配器询问它。如果您更改记录并保存,则商店会将记录交给适配器,以将适当的数据发送到您的服务器并确认保存是否成功。

2)有哪些类型的EmberJS适配器? 现在我只知道商店默认使用的 DS.RESTAdapter (它通过XHR传输JSON与HTTP服务器通信), DS.FixtureAdapter (类似于内存存储(非持久性)和 DS.LSAdapter (类似于本地存储的持久性)。

3)为什么在Todos教程中使用LSAdapter代替FixtureAdapter? FixtureAdapter将数据存储在内存中,因此每当您刷新页面时,数据都会重新分配给初始值。但是LSAdapter在github上可用,它使用持久存储来存储和检索数据,因此即使在刷新页面后也可以保留所有更改。

4)为什么命名空间:“todos-emberjs”? 如果您的JSON API位于主机根目录之外的其他位置,则可以设置将添加到所有请求的前缀。例如,如果您的JSON API在 / todo-emberjs / 中可用,您可能希望将其用作您要调用的所有URL的前缀。在这种情况下,将namespace属性设置为 todo-emberjs

(希望它有所帮助,爱上EmberJS顺便说一句!)