【问题标题】:Ember data api endpoint versus mapped route pluralizationEmber 数据 api 端点与映射路由复数
【发布时间】:2016-10-25 00:32:17
【问题描述】:

考虑在http://localhost:4200/organizer/{organizer-id} 有一个动态路由页面,该页面从 RESTful JSONAPI 适配器获取数据。

organizer.js:

export default Ember.Route.extend({
  model: function(params) {
    return this.get('store').findRecord('organizer', params.organizer_id);
  }
});

当从 REST 适配器获取数据时,Ember 数据将 organizer 复数为 organizers。从文档来看,这似乎是 intended 行为,即 /organizers/{organizer-id}。

然而,从他们的指南https://guides.emberjs.com/v2.8.0/routing/defining-your-routes/ 看来,他们似乎建议这样做:

Router.map(function() {
  this.route('posts');
  this.route('post', { path: '/post/:post_id' });
});

这不是矛盾吗?上面的api端点是复数的,这些路由怎么可能是单数的?

【问题讨论】:

  • 您混淆了路由路径和 API 端点。
  • 请填写。对于路由路径,约定是/post/1,而对于API端点,约定是/posts/1
  • 所有其他条件都相同,是的,通常情况下。为了好玩,试试名为 cow 的模型,看看 API 端点是什么。

标签: rest ember.js ember-data


【解决方案1】:

您混淆了路由路径和 API 端点。对于 API 端点不重命名名词模型(组织者)以使用适配器:http://emberjs.com/api/data/classes/DS.JSONAPIAdapter.html#method_pathForType

//app/adapters/organizer
import ApplicationAdapter from './application';
export default ApplicationAdapter.extend({
  pathForType: function(){
    return "organizer";
  }
});

关于您使用路由器映射的示例,这些是您可以通过 url 栏访问的 ember 应用程序的路径,而不是底层 API 调用。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-29
    • 2018-02-08
    • 1970-01-01
    • 2013-04-08
    • 2012-11-25
    • 2012-11-05
    相关资源
    最近更新 更多