10

我收到 ember 0.9.8.1 的错误

You cannot use the same root element (body) multiple times in an Ember.Application 

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

谢谢。

4

1 回答 1

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/

于 2012-07-20T05:32:25.210 回答