emberjs-1.7.0-beta.4无法使用need api访问另一个控制器的内容

时间:2014-08-01 19:28:49

标签: javascript ember.js ember-router ember-controllers

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

0 个答案:

没有答案