繁体   English   中英

Ember数据加载hasMany关系在Ember App Kit(EAK)中不起作用

[英]Ember Data loading hasMany relation doesn't work in Ember App Kit (EAK)

我试图在两个模型之间建立一个hasMany关系,并在hasMany和hasOne之间建立一个hasOne(在当前版本的Ember Data中属于To)。

我正在使用Ember Data,并制作了一个RESTful API,它可以按照Ember的约定工作。 所有的课程都可以单独查询。

Bookmark    = hasMany   -> Termbinding
Termbinding = belongsTo -> Term
Term        = belongsTo -> Termbinding

因此我们的目标是获取一个Bookmark ,并得到Terms ,可通过连接到它Termbinding 使“ BookmarkTermbinding关系正常运行,我已经很高兴了。 我经历了这里发布的所有问题,可悲的是,这没有用。

Router.js

var Router = Ember.Router.extend();

Router.map(function() {

   this.resource('bookmarks', { path:'bookmarks'});
   this.resource('bookmark', { path:'bookmarks/:bookmark_id' });

   this.resource('termbindings', { path:'termbindings' });
   this.resource('termbinding', { path:'termbindings/:termbinding_id' });

});

export default Router;

Bookmark.js

var Bookmark = DS.Model.extend({
   url: DS.attr('string'),
   description: DS.attr('string'),
   visits: DS.attr('number'),
   termbinding: DS.hasMany('termbinding')
});

export default Bookmark;

Termbinding.js

var Termbinding = DS.Model.extend({
   bookmarkId: DS.attr('number'),
   termId: DS.attr('number'),
   termOrder: DS.attr('number'),
   bookmarks: DS.belongsTo('bookmark')
});

export default Termbinding;

我希望有人可以帮助我,因为这使我无法将Ember用于书签应用程序。 提前致谢。

显式指定您的逆数可能是明智的,即

var Termbinding = DS.Model.extend({
  bookmarkId: DS.attr('number'),
  termId: DS.attr('number'),
  termOrder: DS.attr('number'),
  bookmarks: DS.belongsTo('bookmark', { inverse: 'termbinding' })
});

export default Termbinding;

var Bookmark = DS.Model.extend({
  url: DS.attr('string'),
  description: DS.attr('string'),
  visits: DS.attr('number'),
  termbinding: DS.hasMany('termbinding', { inverse: 'bookmarks' })
});

export default Bookmark;

灰烬数据将尝试为您映射逆,但是,并非并非没有错误。 可能是您在DS.belongsTo关系上的“书签”的复数正在摆脱其自动逆映射。 通常,对于belongsTo,您将使用单数“书签”。 相反,您的hasMany将是termbindings: DS.hasMany('termbinding')

另外,如果您可以显示在哪里调用模型,将不胜感激。 通常,我发现在emberjs.jsbin.com上创建JSbin可以帮助我隔离问题,并且还提供了一个调试和试验的协作空间。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM