Ember Models&关系

时间:2015-03-06 00:55:36

标签: ember.js ember-data

我使用Ember和Ember Data练习,但是我使用Ember Models时只能处理简单的1-M关系。这是jsbin:http://jsbin.com/nikenu/4/edit?html,js,output

谁能告诉我蜡笔在哪里?

我看到2个模型已加载但是盒子没有通过定义的关系加载蜡笔,同样,蜡笔也在检测它们的盒子。

1 个答案:

答案 0 :(得分:0)

模型中的关系属性不应该是ID - 它们应该引用其他模型。因此,请改为定义您的模型:

App.Box = DS.Model.extend({
  owner: DS.attr('string'),
  crayons: DS.hasMany('crayon')             // <----
});
App.Crayon = DS.Model.extend({
  color: DS.attr('string'),
  box: DS.belongsTo('box', {async: true})   // <----
});

然后在您的模板中,您尝试引用model.crayonIds,但请记住您已经在循环中,因此您应该使用item.crayons。像这样:

<ul>
  {{#each item in model}}
    <li>#{{item.id}} | {{item.owner}}</li>
    {{log item.crayons.length}}
    <h5>Crayons</h5>
    <ul>
      {{#each record in item.crayons}}    <!-- change is here -->
        <li>#{{record.id}} | {{record.color}}</li>
      {{/each}}
    </ul>
  {{/each}}
</ul>