我的 Ember Web 应用程序有一些问题。我使用 Ember 1.0 stable 作为基础 JS 框架和 Ember-data.js 1.0 beta 1 来处理模型和 CRUD 操作之间的关系。
我的简单应用程序管理两个实体:用户和订单,它们之间具有多对多关系。
以下是模型:
/*User Model*/
App.User = DS.Model.extend({
first_name: DS.attr('string'),
last_name: DS.attr('string'),
fullName: function() {
return this.get('first_name') + ' ' + this.get('last_name');
}.property('first_name', 'last_name'),
userorders: DS.hasMany('userorder', {async: true})
});
/*Order Model*/
App.Order = DS.Model.extend({
description: DS.attr('string'),
userorders: DS.hasMany('userorder', {async: true})
});
我创建了模型 Userorder,它与 User 和 Order 保持一对一的关系。
这是用户订单的模型:
App.Userorder = DS.Model.extend({
order: DS.belongsTo("order", {async: true, key: "order_id"}),
user: DS.belongsTo("user", {async: true, key: "user_id"})
});
当我尝试获取(进入 UserorderRoute)用户订单的单个实例时,我的问题出现了。遵循 UserorderRoute 的代码:
App.UserorderRoute = Ember.Route.extend({
model: function(params) {
return this.store.find("userorder", params.userorder_id);
}
});
正确获取了 userorder 实例,但是如果我尝试访问“订单”对象,我会得到未定义(显然,访问“用户”时我会得到相同的行为)。