Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/428.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Ember.js-应用程序<;div/>;渲染两次?_Javascript_Html_Css_Ember.js_Handlebars.js - Fatal编程技术网

Javascript Ember.js-应用程序<;div/>;渲染两次?

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

我正在使用以下Ember.js堆栈:

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'
});