我正在使用以下 Ember.js 堆栈:
DEBUG: -------------------------------
DEBUG: Ember : 1.1.2
DEBUG: Handlebars : 1.0.0
DEBUG: jQuery : 2.0.2
DEBUG: -------------------------------
我声明了一个application.hbs
Handlebars 模板,它呈现了我的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}}
出于调试目的,我gotcha
将. 当我现在检查 DOM 时,我可以看到它被渲染了两次(也被装箱了):classNames
App.ApplicationView
App.ApplicationView
...
<div id="appRoot" class="ember-application">
<div id="ember444" class="ember-view gotcha">
<div id="ember445" class="ember-view gotcha">
...more content..
</div>
</div>
</div>
...
编辑:
我应该先尝试一下,然后在stackoverflow上发布它......如果我删除{{#view App.ApplicationView}}{{/view}}
声明,它只会呈现一次,如预期的那样;)
所以,对我来说仍然是一个奇迹的问题是Ember.js
真的<div id="ember666" class="ember-view"></div>
为每个{{outlet}}
??
为什么要这样而且,除此之外,Ember.js
处理?如何防止它渲染App.ApplicationView
两次?Ember.js
真的<div id="ember666" class="ember-view"></div>
为每个{{outlet}}
? (我在我的应用程序中看到了这种行为)