gpt4 book ai didi

javascript - 在 emberjs 的导出中绑定(bind) subview 和集合

转载 作者:行者123 更新时间:2023-11-29 22:22:24 24 4
gpt4 key购买 nike

我正在尝试在 {{outlet}} 中呈现 View Team。此 Team View 由一个简单的 Person View (团队负责人)和一组 Person View (团队成员)组成。通过在 ApplicationController 上调用 connectOutlet() 来设置 socket 。

尽管 Person subview 按预期呈现在标记中,但是 name 的所有值都丢失了。看来我的绑定(bind)和/或 Controller 设置不正确。我错过了什么?

代码和演示:http://jsfiddle.net/aek38/fkKFJ/

相关的 Handlebars 模板是:

<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"
}),
// ...

最佳答案

你可以使用

{{view App.PersonView contextBinding="leader"}}

并为成员使用 {{#each}} 而不是 {{#collection}}

http://jsfiddle.net/LQTsV/1/

关于javascript - 在 emberjs 的导出中绑定(bind) subview 和集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11643426/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com