将带有参数的视图组件渲染到命名的插件ember.js中

我的应用程序模板, slider-areapre-footer有2个命名sockets。 有没有办法将带有参数的视图组件(如索引模板中显示的main-slider组件)传递给指定的sockets? 所以我需要将{{main-slider sliders=filteredSlider}}传递到索引模板中的sockets{{outlet "slider-area"}}

我来自rails如此,请原谅我的想法,如果这不是ember的做法。 可以在应用程序模板中指定yield :slider_area ,然后在content_for :slider_area块中包装此区域的任何内容。 在ember中有类似的方法吗?

的index.html

  {{panasonic-topbar}} 
{{outlet "slider-area"}}
{{outlet}}
{{panasonic-footer}} # Something like {{outlet "slider-area" render main-slider sliders="filteredSlider}} ? {{main-slider sliders=filteredSlider}} {{partial "social_footer"}}

app.js

 App.IndexController = Ember.ObjectController.extend({ filteredSlider: function(){ return this.get('sliders').filterBy('page', 'index'); }.property('sliders.@each.page') }); App.IndexRoute = Ember.Route.extend({ model: function() { return Ember.RSVP.hash({ sliders: this.store.find("slider") }); } }); 

好吧,所以我有一个解决这个问题的方法,而不是试图将模板中的视图组件传递给特定的sockets(rails上的ruby),关键是要创建一个模板,而不是一个组件,并从在通往特定出口的路线内。

从Route渲染时,滑块模板可以访问Routes控制器范围内的所有函数,因此我们将在所有将使用此模板的控制器中对函数/参数进行命名,并且我们的动态参数应该起作用。

所以在IndexRoute中我们定义了我们发送给控制器的数据, sliders ,我们还指定我们想要使用this.render();在默认sockets中呈现正常内容this.render(); ,然后我们将共享滑块模板渲染到指定的sockets“slider-area”。 然后在我们的控制器中,我们将模型数据过滤到我们的规范,并在所有使用此function的控制器上将此function命名为batterySliders。

app.js

 App.IndexController = Ember.ObjectController.extend({ batterySliders: function(){ return this.get('sliders').filterBy('page', 'index'); }.property('sliders.@each.page') }); App.IndexRoute = Ember.Route.extend({ model: function() { return Ember.RSVP.hash({ sliders: this.store.find("slider"), }); }, renderTemplate: function(){ this.render(); this.render("slider", {outlet: "slider-area"}); } }); 

的index.html

  

application.html