每个循环可以把手访问父模型ID

时间:2013-10-10 06:01:22

标签: ember.js handlebars.js

如果我有这样的模型:

App.Group = DS.Model.extend({
  title: DS.attr('string'),
  persons : DS.hasMany('App.Person')
});

App.Person = DS.Model.extend({
  name : DS.attr('string'),
  age : DS.attr('object'),
  group : DS.belongsTo('App.Group')
});

如果我有这样的夹具数据:

App.Group.FIXTURES = [{
 title : "Group A",
 persons : [10,12]
 },{
 title: "Group B",
 persons: [13,14]
}]

App.Person.FIXTURES = [{
 name: "Bill",
 age: 24
},{
 name: "Ted",
 age: 25
},{
 name: "Mr. Excellent",
 age: 30
},{
 name: "Mr. Adventures",
 age: 21
}]

这样的模板:

<script type="text/x-handlebars" data-template-name="Group">
  {{title}}
  {{render person}}
</script>

<script type="text/x-handlebars" data-template-name="Person">
  {{#each in controller}}
     {{name}}
  {{/each}}
</script>

所以现在发生的是人员模板显示人员阵列中的所有人员。如何让每个循环只能覆盖A组中的人员,而不是显示夹具中的每个人?这可以在车把上完成吗?或者这是我需要在路线中指定的东西吗?

1 个答案:

答案 0 :(得分:1)

您可以使用渲染助手的第二个参数来传递人物控制器的模型......

{{render person persons}}

但你的Person.FIXTURES和group.FIXTURES必须有关系的ID

App.Person.FIXTURES = [{
  id:10,
  name: "Bill",
  age: 24
},
[...]
App.Group.FIXTURES = [{
  id: 1,
  title : "Group A",
  persons : [10,12]
},
[...]