gpt4 book ai didi

ember.js - 如何使用字符串作为 Ember 数据的主键?

转载 作者:行者123 更新时间:2023-12-01 10:54:36 25 4
gpt4 key购买 nike

我有以下代码:

Pult.Zone = DS.Model.extend({
name: DS.attr('string'),
authoritative: DS.attr('boolean'),
user_id: DS.attr('number'),
rulesets: DS.hasMany('Pult.Ruleset')
});

Pult.RESTAdapter.map('Pult.Zone', {
primaryKey: 'name',
rulesets: { key: 'rulesetIds' }
});

但是,似乎并没有正确选择主键。我已经呈现了所有区域的列表。

这是一个测试用例:

zones = Pult.store.findAll(Pult.Zone);
zones.get('length'); // Returns 10
zones = Pult.store.findAll(Pult.Zone);
zones.get('length'); // Returns 20

所以每次我从服务器加载区域时,它都会将它们添加到本地列表中,因为它不会将它们识别为已经存在。有什么方法可以解决这个问题,还是我必须尝试模拟一些代理键?

最佳答案

升级到Ember Data 1.0.0 Beta 2后,我找到了一个可行的解决方案:

App.Zone = DS.Model.extend({
name: DS.attr('string'),
user_id: DS.attr('number'),
});

App.ZoneSerializer = DS.RESTSerializer.extend({
normalize: function(type, hash, property) {
// Ember Data use the zone name as the ID.
hash.id = hash.name;

// Delegate to any type-specific normalizations.
return this._super(type, hash, property);
}
});

关于ember.js - 如何使用字符串作为 Ember 数据的主键?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16005198/

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