Ember 模型和关系
Ember Models & Relationships
我正在使用 Ember 和 Ember 数据进行练习,但我仍然坚持使用 Ember 模型的简单 1-M 关系。这是 jsbin:http://jsbin.com/nikenu/4/edit?html,js,output
谁能告诉我我的蜡笔在哪里?
我看到 2 个模型已加载,但盒子没有通过定义的关系加载蜡笔,同样,蜡笔也在检测它们的盒子。
模型中的关系属性不应该是 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>
我正在使用 Ember 和 Ember 数据进行练习,但我仍然坚持使用 Ember 模型的简单 1-M 关系。这是 jsbin:http://jsbin.com/nikenu/4/edit?html,js,output
谁能告诉我我的蜡笔在哪里?
我看到 2 个模型已加载,但盒子没有通过定义的关系加载蜡笔,同样,蜡笔也在检测它们的盒子。
模型中的关系属性不应该是 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>