与Ember的Widget方法

时间:2012-10-16 21:29:46

标签: ember.js ember-old-router

我想将ember与widget方法(隔离组件)一起使用,为root设置rootElement Ember应用程序,每个应用程序都有自己的路由器和存储(如果需要)。

我在http://jsfiddle.net/4xWep/2/尝试失败了 也许路由器实例之间存在干扰问题。 它具有这种小部件方法,具有不同的应用程序和路由器?

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

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

App1.Router = Ember.Router.extend({...})

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

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

App2.Router = Ember.Router.extend({...})

1 个答案:

答案 0 :(得分:2)

问题是您的两个应用程序的路由器使用location.hash冲突来序列化其状态。

在同一页面中,您不能有两个依赖于哈希路由持久性策略的应用程序。

我甚至会说,在我看来,你想要实现的不是经典的“小部件”,因为它们将具有复杂的状态(如每个内部的路由意愿所示) ... 当然你应该多挖一点你的建筑。也许你需要的不是两个应用程序,而是小部件,或者另一方面,几个应用程序,但不能直接在同一个文档中呈现。

也许this (related?) question会有所帮助。