Javascript Ember.js-应用程序<;div/>;渲染两次?
我正在使用以下Ember.js堆栈:Javascript Ember.js-应用程序<;div/>;渲染两次?,javascript,html,css,ember.js,handlebars.js,Javascript,Html,Css,Ember.js,Handlebars.js,我正在使用以下Ember.js堆栈: DEBUG: ------------------------------- DEBUG: Ember : 1.1.2 DEBUG: Handlebars : 1.0.0 DEBUG: jQuery : 2.0.2 DEBUG: ------------------------------- 我声明了一个application.hbshandlebar模板,用于呈现我的App.ApplicationView {{#view Ap
DEBUG: -------------------------------
DEBUG: Ember : 1.1.2
DEBUG: Handlebars : 1.0.0
DEBUG: jQuery : 2.0.2
DEBUG: -------------------------------
我声明了一个application.hbs
handlebar模板,用于呈现我的App.ApplicationView
{{#view App.ApplicationView}}
{{outlet 'modal'}} {{outlet 'notificationCollection'}}
{{#if isUserAuthenticated}}
{{render sidemenu authenticationState=isAuthenticated}}
{{outlet 'upperNotification'}}
<div id="main" class="main">
{{outlet}}
</div>
{{else}}
{{outlet}}
{{/if}}
{{/view}}
编辑:
我应该先试试,然后再把它贴在stackoverflow。。。如果我删除{{{{view App.ApplicationView}{{/view}}
声明,它只呈现一次,正如预期的那样;)
因此,对我来说仍然是一个奇迹的问题是是Ember.js
真的为每个{{outlet}}
生成一个封闭的
为什么
Ember.js
会这样处理?如何防止它两次呈现App.ApplicationView
?除此之外,Ember.js
是否真的为每个{outlet}
生成一个封闭的
?(我在我的应用程序中看到了这种行为)默认情况下,yes{{outlet}
会将模板包含在
中。但是,您可以通过在插座上指定视图类并将视图类“标记名”
属性定义为您想要的任何属性来更改该行为
例如,出口
{{outlet viewClass=App.HeaderContainer}}
鉴于
App.HeaderContainer = Ember.ContainerView.extend({
tagName: 'header'
});
将用
标签包装插座。非常感谢!在Ember文档的任何地方都没有读到(?)它在API文档中
App.HeaderContainer = Ember.ContainerView.extend({
tagName: 'header'
});