0

このようなモデルがある場合:

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 の人物のみを対象とする each ループを取得するにはどうすればよいですか? これはハンドルバーで行うことができますか? または、これはルートで指定する必要があるものですか?

4

1 に答える 1

1

レンダー ヘルパーの 2 番目の引数を使用して、人物コントローラーのモデルを渡すことができます...

{{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]
},
[...]
于 2013-10-10T08:55:43.793 に答える