【发布时间】:2012-07-25 05:43:53
【问题描述】:
我正在尝试在 {{outlet}} 内渲染视图 Team。这个Team 视图由一个简单的Person 视图(团队负责人)和一组Person 视图(团队成员)组成。通过在 ApplicationController 上调用 connectOutlet() 来设置出口。
尽管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>
代码sn-p:
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"
}),
// ...
【问题讨论】:
标签: javascript ember.js handlebars.js