0
我的模型定义如下:查找记录
App.User = DS.Model.extend({
primaryKey: 'username',
username: DS.attr('string'),
name: DS.attr('string')
});
我的自定义适配器图:
DS.SocketAdapter.map('App.User', {
primaryKey: 'username',
username: DS.attr('string'),
});
我通过键入在控制台上测试这一模型了:
App.User.createRecord({username:"user_1"});
var r = App.User.find("user_1");
console.log(r.serialize());
>> Object {username: null, name: null ..... all null}
但它回退一个“空”对象。还测试过:
App.User.find({username:"user_1"});
但是这是在做一个远程请求。我读过Ember Data允许您通过ID以外的属性查找记录。
那么我在告诉Ember数据我做错了我的定制primaryKey?
感谢您的回复!我无法将其归档!我创建了一个jbin。 http://jsbin.com/olizir/3/edit。以下是输出:http://jsbin.com/olizir/3。在我的真实代码中,我没有实现我的适配器的find()方法(因为我对做远程请求不感兴趣,只能通过ID查找记录)。谢谢 – Mattia 2013-05-06 21:44:57
你应该使用'FixturesAdapter',因为'RESTAdapter'是为了处理请求,所以它只有在'RESTAdapter'上定义了find()和所有这样的方法时才起作用。说得通? – intuitivepixel 2013-05-07 18:21:46
请参阅此链接:https://github.com/emberjs/data/blob/master/BREAKING_CHANGES.md#revision-12。什么意思“自定义sideloadAs和**键映射**仍然可以配置为根据需要覆盖这些默认值”? **键映射**代表什么?他们在谈论主键?谢谢 – Mattia 2013-05-09 19:42:23