我正在尝试使用需求 api从我的 IndexController 访问 PagesController 的内容。但它不起作用,我让它工作的唯一方法是添加一个 IndexRoute 并通过模型钩子加载它。有没有办法使用控制器需要 api 来访问另一个控制器的内容。这是 JSBIN:http: //jsbin.com/gubuvuhi/1/edit
页面控制器:
App.PagesController = Ember.ArrayController.extend({});
索引控制器:
App.IndexController = Ember.ArrayController.extend({
needs: 'pages',
fetchPages: Em.computed.alias("controllers.pages.content"),
});
页面路由:
App.PagesRoute = Ember.Route.extend({
model: function(){
return this.store.find('page');
}
});
此 index_template 不呈现 fetchPages:
<script type="text/x-handlebars" data-template-name='index'>
<div class="container">
<b>failed to display using needs api </b>
<div>
{{#each page in fetchPages }}
{{page.navbar}}
{{/each}}
</div>
</script>
但是当我添加一个 IndexRoute 并将 IndexTemplate 更改为此时,它可以工作并呈现正确的内容:
<script type="text/x-handlebars" data-template-name='index'>
<div class="container">
<b>failed to display using needs api </b>
<div>
{{#each page in model }}
{{page.navbar}}
{{/each}}
</div>
</script>
这是 IndexRoute,请注意
App.IndexRoute = Em.Route.extend({
model: function(){
return this.store.find('page');
}
});
您将看到this.store.find('pages')在 IndexRoute 和 PagesRoute 中都重复出现,我想通过使用需要 api从 IndexController 获取 PagesController 的内容来避免这种情况。有没有办法做到这一点。这是 JSBIN:http: //jsbin.com/gubuvuhi/1/edit