如何使用默认的Ember编译布局

时间:2013-11-20 18:27:12

标签: ember.js

我需要两个应用程序模板。我以为我可以使用布局解决这个问题。

除了一个路径和视图之外,所有路由都使用一个布局,而索引路径/视图使用另一个布局。我想避免手动创建Ember.View对象,如果没有必要的话。

所以:

Ember.View.layoutName = 'layouts/app';

App.IndexView = Ember.View.extend({
    layoutName: 'layouts/logged-out'
});

这里的目的是将所有视图使用的默认布局设置为'layouts/app',使用grunt从手柄文件编译,并按照常规模板在Ember.TEMPLATES数组中结束。

布局基本上是这样的结构:

<div class="row">
    <div class="thirteen wide column">
        {{ yield }}
    </div>
</div>

目前,布局html被完全忽略,它只呈现模板中的内容。

所以问题是,如果这是正确的方法,我错过了什么让它起作用?如果这不是正确的方法,我应该做什么呢?

1 个答案:

答案 0 :(得分:1)

我认为您唯一的问题是使用属性定义,您需要使用reopen来设置默认实例属性,而不是Ember.View.layoutName = 'layouts/app';

在你的情况下:

Ember.View.reopen({
  layoutName: 'layouts/app'
});