两周前,我发布了一个问题,我认为该问题与RC2:EmberJS: in RC2, how to use "needs" for a controller when {{render}} is called multiple times?中更新的{{render}}有关
现在,我认为它要么比这更广泛,要么我误解了如何使用"needs“API,因为在使用较旧的”itemController“时也会发生这种情况。
请考虑以下几点:
App.Parent = Ember.Object.extend({
name: null,
children: null, // An Ember array of Child objects
});
App.Child = Ember.Object.extend({
name: null,
});
App.ParentController = Ember.ObjectController.extend({
});
App.ChildController = Ember.ObjectController.extend({
needs: 'parent',
});我的模板是这样的:
<script type="text/x-handlebars" data-template-name="application">
{{#each parent in App.parents itemController='Parent'}}
{{partial 'parent'}}
{{/each}}
</script>
<script type="text/x-handlebars" data-template-name="_parent">
In parent: {{controller}}<br>
Name: {{name}}<br>
<br>
{{#each child in children itemController='Child'}}
{{ partial 'child' }}
{{/each}}
</script>
<script type="text/x-handlebars" data-template-name="_child">
Child name: {{name}}<br>
Parent Name: {{controllers.parent.name}}<br>
<br>
</script>为什么{{controllers.parent.name}}总是空?
http://jsfiddle.net/8V9xQ/5/
谢谢
PJ
发布于 2013-04-09 22:01:27
为此,您不必使用needs API,只需在您的子模板中编写{{parent.name}}而不是{{controllers.parent.name}},并从App.ChildController中删除needs: 'parent'行。
您可以使用needs API引用单例控制器,而itemController不是单例控制器。
https://stackoverflow.com/questions/15903270
复制相似问题