如何使用RESTAdapter处理单一资源

Nic*_*gan 14 rest ember.js ember-data

如何在ember-data中处理奇异资源?假设我有以下RESTful路由:

GET /cart
POST /cart
UPDATE /cart
DELETE /cart
Run Code Online (Sandbox Code Playgroud)

ember-data期望find()返回一个数组,并且它会自动尝试复数我传递给我的模型的任何url.处理这种情况的最佳方法是什么?

Rya*_*yan 7

你可以在这里做很多事情.

该RESTAdapter电话以复数,这无论是增加了一个"S"的名字的末尾,或查找名称的复数散列如果存在的话.假设你的DS.Model是App.Cart.

https://github.com/emberjs/data/blob/master/packages/ember-data/lib/adapters/rest_adapter.js#L209

DS.RESTAdapter.create({
  plurals: {
    cart: 'cart'
  }
});
Run Code Online (Sandbox Code Playgroud)

如果您的URL方案非常不同并且需要一些其他逻辑,您实际上可以覆盖buildURL函数.

https://github.com/emberjs/data/blob/master/packages/ember-data/lib/adapters/rest_adapter.js#L288

DS.RestAdapter.create({
  buildURL: function() {
    return "/always_this"
  })
});
Run Code Online (Sandbox Code Playgroud)