我在主应用程序“shell”中有两个不同的应用程序。
主应用程序处理登录并包含子应用程序的插座,例如
<header>
{{outlet}}
<footer>
子应用程序只是具有自己的命名空间,路由等的标准ember应用程序。
我希望能够像这样将它们连接起来
MainApp.Router.map(function() {
this.route("login");
this.route("sub1", SubApp1.Router);
this.route("sub2", SubApp2.Router);
});
/login -> MainApp.LoginRoute
/sub1/foo -> SubApp1.FooRoute
/sub2/foo/bar -> SubApp2.FooBarRoute
这可能吗?
答案 0 :(得分:0)
这是一个有趣的想法,但这种方式不支持嵌套应用程序。一次只能使用1个路由器。您可以执行单个应用程序并共享路由器,但是您必须确保所有内容都位于相同的命名空间中,或者使用某种依赖注入来确保所有依赖项都可用。
SubApp1.MyRouting = function() {
this.route("foo");
}
SubApp2.MyRouting = function() {
this.route("bar");
}
在MainApp中
MainApp.Router.map(function() {
this.route("login");
this.route("sub1", SubApp1.MyRouting);
this.route("sub2", SubApp2.MyRouting);
});
如果SubApp在页面中是独立且单独的
SubApp1.Router.map(SubApp1.MyRouting);