适配器和夹具适配器和REST适配器有什么区别,什么时候使用每一个?在ember-data中,Adapter和Fixture Adapter和REST Adapter有什么区别?
7
A
回答
22
使用DS.FixtureAdapter
(或DS.FixtureAdapter.create()
)如果您还没有(但?)谨慎地与后端进行通信,但会将数据作为“固件”存储在客户端中。一旦你已经声明了一个模型:
App.Thing = DS.Model.extend({
name: DS.attr('string'),
// ...
});
您可以定义夹具:
App.Thing.FIXTURES = [
{
id: 1,
name: '...',
// ...
},
{
id: 2,
name: '...',
// ...
},
];
然后你就可以使用他们的余烬数据的方法(例如App.Thing.findAll()
等),并对其进行操作,但当然,它只会持续页面(即javascript环境)。
DS.RestAdapter
虽然显然还在开发中,但它的设计非常适合Rails API,但可能会被修改/扩展以适用于您正在使用的任何RESTful API。它知道通过致电/things
来处理App.Thing.findAll()
,并且通过致电/things/12
来处理App.Thing.find(12)
。这是一个相对路径,追加到命名空间参数,您在传递:
App.store = DS.Store.create({
revision: 4,
adapter: DS.RestAdapter.create({
namespace: 'http://what.ever/api/v1'
})
});
DS.Adapter
是相当抽象:上述内置适配器的超类。如果两者都不符合您的需求,您可能需要自行实施:
App.adapter = DS.Adapter.create({
find: function(store, type, id) {
// ...
jQuery.get(... , function(data) {
store.load(type, id, data);
});
},
createRecord: function(store, type, model) {
// ...
jQuery.post(... , function(data) {
store.didCreateRecord(model, data);
});
},
// ...
});
App.store = DS.Store.create({
revision: 4,
adapter: App.adapter
});
希望有所帮助。有关更多信息,请参阅自述文件https://github.com/emberjs/data。
相关问题
- 1. Start Adapter from Adapter
- 2. Model-View-Presenter和Model-View-Adapter有什么区别?
- 3. Ruby和activerecord-oracle_enhanced-adapter
- 4. Java相当于tcp-inbound-channel-adapter和tcp-outbound-channel-adapter bean配置
- 5. drscheme c#adapter
- 6. activerecord-sqlserver-adapter
- 7. Firebase Recycler Adapter
- 8. setAdapter(adapter)always error
- 9. 使用retrofit和recyclerview - 为什么我的ArrayList在Adapter中为null?
- 10. Android adapter parent width = 0
- 11. adapter = new ListLeaderBoardAdapter(this,mLeaderboardlist);
- 12. zf2 - 无法将Zend \ Db \ Adapter \ Adapter服务解析到工厂
- 13. Zend Framework 2&PHPUnit - 模拟Zend \ Db \ Adapter \ Adapter类
- 14. Encoding :: UndefinedConversionError与activerecord-sqlserver-adapter
- 15. 阅读JS Adapter的sendFormParameters params
- 16. Spinner Adapter继续回复
- 17. MobileFirst Platform adapter invocation failed in simulator
- 18. .setAdapter(adapter);给NullPointerException异常
- 19. Adapter上的getItemCount()返回0
- 20. EF POCO DTO WCF Adapter模式
- 21. Missing /Zend/Db/Adapter/Pdo/Mysql.php
- 22. 如何在Adapter类中使用AlertDialog?
- 23. 在redhat上安装datamapper mysql dm-mysql-adapter
- 24. ZF2中的Zend \ Paginator \ Adapter \ DbSelect DISTINCT问题
- 25. 无法解析Adapter类中的ConfirmActivity和findViewById
- 26. Android RecyclerView:为什么Adapter的上下文返回警告?
- 27. 为什么我会收到“Thin adapter not found”?
- 28. Zend_Auth:为什么验证对象名为adapter而不是策略?
- 29. Android EXTRA_MESSAGE无法在Recycler View Adapter内部识别
- 30. Adapter ListView项目点击事件
非常棒的回复,感谢分享。 – 2014-01-09 16:49:25