簡體   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