renderTemplate进入插座不起作用

时间:2014-12-12 20:46:45

标签: ember.js

box/inbox.hbs

我的模板users/profile.hbs{{outlet inbox}} profile.hbs

profile.hbs {{#link-to 'box.inbox'}}this is a link{{/link-to}}我应该box/inbox.hbs{{outlet inbox}}呈现在router.js我想要在Router.BoxInboxRoute = Ember.Route.extend({ renderTemplate: function(){ this.render('box.inbox', {into: 'users.profile', outlet: 'inbox'}); } }); 中执行的插座/box/inbox中: / p>

inbox.hbs

但链接只是将我重定向到另一个页面profile.hbs。如何获取{{1}}以在{{1}}

的插座中呈现{{1}}

1 个答案:

答案 0 :(得分:0)

我认为link-to助手是混乱的根源。据我所知,link-to将始终更改网址和路由,因此您无法通过单击box.inbox模板的users.profile模板的特定部分来实现链接,除非您使用嵌套路由。

但是,为了实现点击链接以显示收件箱内容,您可以随时使用指定的插座加载隐藏的box.inbox路线,然后点击链接,显示包含{{的div 1}}内容。这是一个例子。

UsersProfileRoute:

box.inbox

用户/ profile.hbs:

Router.UsersProfileRoute = Ember.Route.extend({
    renderTemplate: function(){
        this.render();
        this.render('box.inbox', {into: 'users.profile', outlet: 'inbox'});
    }
});

的CSS:

<a href='#' {{action 'showInboxAction'}}>click to see inbox</a>
<div {{bind-attr class=":inbox-style shouldShowInbox:displayed:hidden"}} >
    {{outlet inbox}}
</div>

并在用户配置文件控制器中有一个操作:

.inbox-style.displayed {
    display: block;
}
.inbox-style.hidden {
    display: none;
}