【发布时间】:2014-07-04 15:43:07
【问题描述】:
我已经开始使用 EmberJS 和 Ember-Data,但遇到了一个小问题。
我有一个应用程序,其中我的数据源使用非 ID 作为主键(例如 /model/<slug_name>)。我正在使用FixtureAdapter 处理事情,直到我将它连接到后端:
App.ApplicationAdapter = DS.FixtureAdapter.extend({})
App.MyModel = DS.Model.extend({
slug: DS.attr('string'),
body: DS.attr('string')
});
App.MyModel.FIXTURES = [{
slug: 'test-slug',
body: 'Body goes here'
}];
似乎有几个信息来源解释了如何使用 different primary key,但它们都以使用实际数据源为导向(并涉及修改序列化程序;这不是' t 在使用 FixtureAdapter 时使用)。
如果我做幼稚的事情并只是连接路线......
// ...
App.MyModelEditRoute = Ember.Route.extend({
model: function(params) {
return this.store.find('mymodel', params.slug)
}
});
...并更改模板...
{{#link-to "mymodel.edit" slug}}Edit{{/link-to}}
...然后我收到此错误:
Assertion failed: You made a request for a mymodel with id test-slug, but the adapter's response did not have any data
在使用FixtureAdapter 时,如何使用非“id”字段作为主键?
理想情况下,在使用FixtureAdapter 或真实数据源时是否有可行的解决方案?
作为参考,这些是我正在使用的 EmberJS 和 Ember-Data 版本:
"ember": "~1.3.2",
"ember-data": "~1.0.0-beta.8"
【问题讨论】:
标签: javascript ember.js ember-data