javascript - 在 Ember.js 中处理多态关系

标签 javascript ember.js

这对我来说有点棘手,因为它根本没有包含在文档中。

我有四个模型:

App.Dog = DS.Model.extend();
App.Cat = DS.Model.extend();

App.Food = DS.Model.extend();
App.Toy = DS.Model.extend();

都有很多食物和很多玩具。另一方面,foodtoy 的单个实例只能属于一个 dogcat(因此它在动物方面是 hasMany-ish 关系,在项目方面是 belongsTo-ish)。

关于如何使用多态关系在 Ember 中执行此操作的任何提示?或者除了多态关系之外,也许还有更好的方法来实现这一点?

还有我应该在我的 Controller 中实现什么代码来创建一个新的 foodtoy 属于 dogcat 的记录?

谢谢!

最佳答案

基于 this slideshow ,类似于:

App.Animal = DS.Model.extend({
  food: DS.hasMany('App.Food', { polymorphic: true }),
  toys: DS.hasMany('App.Toy', { polymorphic: true })
});
App.Dog = App.Animal.extend(/* .... */);
App.Cat = App.Animal.extend(/* .... */);

App.Food = DS.Model.extend({
  owner: DS.belongsTo('App.Animal', { polymorphic: true })
});
App.Toy = DS.Model.extend({
  owner: DS.belongsTo('App.Animal', { polymorphic: true })
});

关于javascript - 在 Ember.js 中处理多态关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22045381/

相关文章:

ember.js - 简单的 ContainerView 导致 "Using the defaultContainer is no longer supported."

ember.js - 绑定(bind)助手将参数作为字符串而不是属性值

javascript - Ember.js:如何将我的组件与模型关联?

javascript - Ember 中的空参数变量

javascript - 从 Parse.com 删除特定对象

javascript - 如何在 JavaScript 中将 UUID/GUID 转换为 OID/DICOM UID?

javascript - 创建新的js文件并从其他js文件中获取信息

javascript - 为什么这个 knockoutjs observableArray 不会导致 UI 更新?

javascript - Ember.js 是否可以为转换对象的数据属性分配任何值?

javascript - 将自制库导入到vue项目中