Team
内のビューをレンダリングしようとしています{{outlet}}
。このTeam
ビューは、単純なPerson
ビュー (チーム リーダー) とPerson
ビューのコレクション (チーム メンバー) で構成されます。connectOutlet()
アウトレットは、ApplicationControllerを呼び出すことによって設定されます。
子ビューは期待どおりにマークアップでレンダリングされますがPerson
、すべての値name
が欠落しています。バインディングやコントローラーが正しく設定されていないようです。私は何が欠けていますか?
コードとデモ: http://jsfiddle.net/aek38/fkKFJ/
関連するハンドルバー テンプレートは次のとおりです。
<script type="text/x-handlebars" data-template-name="app">
<div class="container">
{{outlet}}
</div>
</script>
<script type="text/x-handlebars" data-template-name="person">
<em>Person name is:</em> {{name}}
</script>
<script type="text/x-handlebars" data-template-name="team">
<h3>Team Leader</h3>
<em>Leader name should be:</em>{{leader.name}}
{{view App.PersonView contentBinding="leader"}}
<h3>Team Members</h3>
{{#collection contentBinding="members"}}
{{view App.PersonView contentBinding="content"}}
{{/collection}}
</script>
コードスニペット:
App = Ember.Application.create({
ready: function() {
this.initialize();
},
ApplicationController: Ember.Controller.extend(),
ApplicationView: Ember.View.extend({
templateName: "app"
}),
Person: Ember.Object.extend({
name: "Jane Doe"
}),
PersonController: Ember.ObjectController.extend(),
PersonView: Ember.View.extend({
templateName: "person"
}),
Team: Ember.Object.extend({
members: [],
leader: null
}),
TeamController: Ember.ObjectController.extend(),
TeamView: Ember.View.extend({
templateName: "team"
}),
// ...