您不能在Ember.Application中多次使用相同的根元素(正文)

时间:2012-07-20 02:08:36

标签: ember.js

我在使用ember 0.9.8.1

时遇到错误
You cannot use the same root element (body) multiple times in an Ember.Application 

知道这是怎么回事?关于我应该在哪里研究的一些建议?

感谢。

1 个答案:

答案 0 :(得分:13)

您无法将多个Ember应用程序绑定到同一个DOM元素,因为它会与DOM维护发生冲突。

然而,您可以在同一页面中实现多个Ember应用程序。尝试类似的东西:

App1 = Ember.Application.create({
    rootElement: '#app1'
});

App1.ApplicationController = Ember.Controller.extend();
App1.ApplicationView = Ember.View.extend({
    templateName: 'app1-view'
})

App1.Router = Ember.Router.extend({
    root: Ember.Route.extend({
        index: Ember.Route.extend({
            path: '/'
        })
    })
});


App2 = Ember.Application.create({
    rootElement: '#app2'
});

App2.ApplicationController = Ember.Controller.extend();
App2.ApplicationView = Ember.View.extend({
    templateName: 'app2-view'
})

App2.Router = Ember.Router.extend({
    root: Ember.Route.extend({
        index: Ember.Route.extend({
            path: '/'
        })
    })
});

在这里,我们使用rootElement属性显式设置应用程序将绑定的DOM元素。

默认情况下,Ember应用绑定到body,因此如果您有两次,则会发生冲突......

示例@ http://jsfiddle.net/MikeAski/FMV8u/13/