迭代Ember.js中的hasMany / belongsTo关系

Iterate through hasMany / belongsTo relation in Ember.js

本文关键字:belongsTo 关系 hasMany 中的 Ember js 迭代      更新时间:2023-09-26

我想从我的Ember.DocumentController返回给定草稿(父元素)的子元素(注释)作为计算属性。在本例中,我想返回属于editableDraft属性的所有注释。

或者有没有更好的方法?

App.DocumentController = Ember.ObjectController.extend({
  editableDraft: function() {
    var editDrafts = this.get('model.drafts').filterBy("editable", true);
    var draft = editDrafts.length ? editDrafts[0] : null;
    return draft;
  }.property('model.drafts.@each.editable'),
  editableNotes: function() {
    var eDraft = this.get("editableDraft"); // want to return notes of editableDraft
    return eDraft.get("notes");
  }.property('model.drafts.@each.editable')
});

查看jsbin中的测试应用程序!

有两个问题。一,在document模板中,这里:

{{render 'editableDraftNotes' notes}}

Render用提供的参数替换你的控制器和模型做了一些奇怪的事情。这不是你需要的。试试这个:

{{partial 'editableDraftNotes'}}

2,在editableNotes属性中。你应该听听editableDraft的变化。还有,因为烬。数据返回承诺,你必须链接你的获取(this.get("A.B")而不是this.get("A").get("B"))。试试这个:

  editableNotes: function() {
    return this.get("editableDraft.notes");
  }.property('editableDraft')