我正在处理一组可能具有重复值的数据。当我最初添加数据时,我使用的是客户端上可用的少量信息(存储在内存中模型上的静态信息)。
但是因为每次显示车把模板时我都需要获取最新的,所以我还在计算属性中触发了一个“findAll”,以获取自初始 ember 应用程序启动以来可能已经到达服务器端的任何新数据。
在此过程中,我在 ember-data 模型上使用“addObjects”方法,但是当返回服务器端时,我在数组中看到重复记录(假设是因为它们没有相同的 clientId)
App.Day = DS.Model.extend({
appointments: function() {
//this will hit a backend server so it's slow
return App.Appointment.find();
}.property(),
slots: function() {
//no need to hit a backend server here so it's fast
return App.Slot.all();
}.property(),
combined: function() {
var apts = this.get('apppointments'),
slots = this.get('slots');
for(var i = 0; i < slots.get('length'); i++) {
var slot = slots.objectAt(i);
var tempApt = App.Appointment.createRecord({start: slot.get('start'), end: slot.get('end')});
apts.addObjects(tempApt);
}
return apts;
}.property()
});
是否可以告诉 ember-data 模型是什么使它独一无二,以便在解决承诺时它会知道“这已经存在于 AdapterPopulatedRecordArray 中,所以我将更新它的值而不是显示两次”