我正在尝试使用Ember.Select视图类,我正在寻找一种方法来检索关联的id而不加载完整模型。
我使用的是Ember Data 1.0.0-beta.7。我的房产模型如下:
var attr = DS.attr;
App.Property = DS.Model.extend({
neighborhood: DS.belongsTo('neighborhood'),
name: attr()
});
我的有效负载示例如下所示:
{"property": neighborhood: 5, name: "Foo"}
我只需要邻域的id,以便将其传递给select view value属性,以便可以选择它。我不想加载完整的邻域有效负载,因为我只需要id。
有没有办法在不改变我的模型的情况下做到这一点?
答案 0 :(得分:0)
尝试使用property._data.neighborhood.id
。有效负载数据存储在记录的_data
哈希中,但实际上并不建议使用它们!
我有一个类似的用例 - 我想检查记录是否有父母,但我实际上并不想在我呈现列表时检索父母。 Ember变得疯狂并提出100个请求,这不是完全可取的!
答案 1 :(得分:0)
您可以直接在计算函数中检查belongsTo
关系。
import Ember from 'ember';
var attr = DS.attr;
App.Property = DS.Model.extend({
neighborhood: DS.belongsTo('neighborhood'),
name: attr(),
neighborhoodId: Ember.computed(function(){
return this.belongsTo('neighborhood').id();
}).volatile()
});
使计算属性volatile
意味着每次调用时都会重新计算它 - 不仅仅是在新数据进入时。这样,在模型完全没有之前,你总是得到一个无效值加载。