javascript - 告诉 ember.js 为其模型的 "id"使用不同的 key

标签 javascript ember.js javascript-framework

我陷入了不应该在 API 端点中返回 id 字段的情况。我需要告诉 ember 将 slug 字段用于/而不是 id

我尝试了 DS.RESTAdapter.map('App.Post', id: {key: 'slug'})。虽然这对 App.Post.find("a-slug-name") 非常有效,但它对 App.Post.find() 造成了困惑,导致添加了一个每次调用新模型。并将 id 分配给 null。

那么我应该怎么做。

最佳答案

您需要在适配器中指定应该用作 primaryKey 的属性。如果您希望 slug 属性用作您的 Post 模型 id,请像这样在您的 Adapter 上定义 primaryKey :

DS.RESTAdapter.map('App.Post', {
  primaryKey: 'slug'
});

更新

从 Ember-data 版本 1.0.0-beta.7 canary 开始,您需要执行此操作而不是上面的代码片段:

App.PostSerializer = DS.JSONSerializer.extend({
  primaryKey: 'slug'
});

关于javascript - 告诉 ember.js 为其模型的 "id"使用不同的 key ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18031188/

相关文章:

javascript - 什么是元素样式组件和什么是片段样式组件?

extjs - 无法在 extjs 中保持结构的 100% 宽度和高度

Javascript、文本注释和想法

javascript - 在作为 html 电子邮件发送之前通过 MathJax 运行 HtmlService 模板

javascript - 如何向 watson 对话响应添加操作?

ember.js - 余热试验测试参数

javascript - 路由器 Action 和 Controller Action 有什么区别?

jquery - 您通常在网站中编写哪些类型的 javascript/jquery 方法?

ember.js - 定义模型时使用 DS.model 或 Ember.model 或 Ember.Object?

javascript - 输入 JavaScript 函数