1

我正在尝试使用需求 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

4

0 回答 0