1

首先我很抱歉:我对 ember.js 很陌生,到目前为止还很挣扎。

我编写了一个非常基本的应用程序,并且一直将其用作主要指南:http ://trek.github.com/

我现在最大的问题是弄清楚如何处理视图,特别是渲染的 HTML 以及它在 DOM 中的出现位置。看来,至少在我目前的应用程序中,DOM 元素被创建并插入到页面中,但就在 /body 之前。因此,所有内容都加载在我的主要网站设计的页脚下方。

脚本模板的位置与页面相关的位置似乎无关紧要,或者类似的东西?

有没有办法将视图呈现到现有的容器 div 或其他东西?我想错了吗?我习惯使用 jsRender 来设置模板,但它们通常呈现为内存中的字符串,然后我需要将其插入到现有容器中,例如 $('#containerDiv').html(myRenderedHtmlFromATemplate);

感谢您对此的任何帮助或指导!

4

3 回答 3

3

Ember 将希望其视图在 DOM 中是分层的,因此它可以依赖事件传播。您可能注意到<div class="ember-application">注入了一个,然后您的所有视图都在其中呈现。

您可以在创建应用程序时指定rootElement 。应用程序将在该元素内创建,而 DOM 的其余部分保持不变。如果您不指定,则 Ember 将在您观察到rootElement的之前插入自身。</body>

例子:

window.MyApp = Ember.Application.create({
  rootElement: "#containerDiv"
});
于 2012-12-19T00:40:49.763 回答
0

tuxedo25 有最好的解决方案。如果您正在使用StateManager,您还可以使用以下内容:

App.StateManager = Ember.StateManager.create({
    rootElement: '.content',
    initialState: 'initial',
    initial: Ember.ViewState.create({
        route: 'initial',
        view: Ember.View.create({ templateName: 'initial' })
    })
});
于 2012-12-20T15:32:49.040 回答
0

如果没有看到代码,并不完全清楚到底发生了什么,但是,我没有看到你提到任何关于网点的事情,所以我认为这可能是你的问题。

在网点上查看此网址:http: //emberjs.com/guides/outlets/

于 2012-12-18T21:56:05.223 回答