我正在尝试使用需要api 来从我的IndexController访问PagesController的内容。但是它不起作用,我让它工作的唯一方法是添加一个IndexRoute并通过模型钩子加载它。有没有办法使用控制器需要api来访问另一个控制器的内容。这是JSBIN: http://jsbin.com/gubuvuhi/1/edit
PagesControllers:
App.PagesController = Ember.ArrayController.extend({});
IndexControler:
App.IndexController = Ember.ArrayController.extend({
needs: 'pages',
fetchPages: Em.computed.alias("controllers.pages.content"),
});
PagesRoute:
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 来避免这种情况PagesController的内容来自IndexController。有没有办法做到这一点。这是JSBIN: http://jsbin.com/gubuvuhi/1/edit