gpt4 book ai didi

javascript - 使用 FixtureAdapter 时如何使用非 -'id' 字段作为主键?

转载 作者:行者123 更新时间:2023-11-28 08:08:14 25 4
gpt4 key购买 nike

我已经开始使用 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 ,但它们都面向使用实际数据源(并涉及修改序列化器;使用 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"

最佳答案

我必须回头寻找固定适配器/序列化器,但在其余适配器/序列化器中,您可以在序列化器上定义主键。在应用程序中,它仅被称为id,但当它反序列化/序列化时,它将把它转换为主键名称

App.ColorSerializer = DS.RESTSerializer.extend({
primaryKey: 'piano'
});

App.Color = DS.Model.extend({
color: DS.attr()
});

示例:http://emberjs.jsbin.com/OxIDiVU/774/edit

关于javascript - 使用 FixtureAdapter 时如何使用非 -'id' 字段作为主键?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24577635/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com