Javascript 如何在ember.js 1.6.x中创建无路由子状态
我想创建一个类似管理子应用程序的东西,它可以在我现有的ember 1.6.x应用程序的每个页面上使用。它将拥有自己的状态机(路由器),允许它根据自己的状态加载不同的控制器/模板。我看到过很多类似的讨论,都是围绕着拥有多个状态机(路由器)或广泛使用子路由展开的,但没有什么真正切中要害的 有没有一个明确的方法可以在同一个页面上创建实际上是两个余烬应用程序的东西 子应用不需要实际拥有url栏中解释的路由。当父应用程序更改路由/状态时,它也不需要保持其状态。每次父应用更改到不同的路由时,都可以重置它。我要避免的是在父应用程序的多个控制器中反复重复相同的代码。我还希望避免污染应用程序或全局级别 下面是我调查过的讨论列表。我能找到的最有意义的事情是关于余烬流的工作(尚未完成)。或者我真的应该考虑通过子应用程序的ember states插件创建一个新的状态机吗 明确地说,我不是在找人为我写代码的人。只是讨论了如何使用目前可用的ember 1.6.x实现这一点Javascript 如何在ember.js 1.6.x中创建无路由子状态,javascript,ember.js,ember-data,url-routing,Javascript,Ember.js,Ember Data,Url Routing,我想创建一个类似管理子应用程序的东西,它可以在我现有的ember 1.6.x应用程序的每个页面上使用。它将拥有自己的状态机(路由器),允许它根据自己的状态加载不同的控制器/模板。我看到过很多类似的讨论,都是围绕着拥有多个状态机(路由器)或广泛使用子路由展开的,但没有什么真正切中要害的 有没有一个明确的方法可以在同一个页面上创建实际上是两个余烬应用程序的东西 子应用不需要实际拥有url栏中解释的路由。当父应用程序更改路由/状态时,它也不需要保持其状态。每次父应用更改到不同的路由时,都可以重置它。我
这可能是您正在寻找的:
我想你可以使用查询参数。我没有完全了解你的用例,但是请签出这个你可以在另一个余烬应用程序中运行多个嵌入式独立余烬应用程序 嵌入式embedded Ember应用程序可以像任何其他应用程序一样操纵URL状态,或者您可以将其配置为具有路由状态,但不与URL交互 看一看 摘录:
App = Ember.Application.create({
rootElement: '#app'
});
App.Router = Ember.Router.extend({
location: 'none' // To disable manipulating URL
});
您还可以在应用程序之间共享代码。例如,共享一个余烬数据模型
var MainApp = Ember.Application.create({});
var AdminApp = Ember.Application.create({rootElement: '#admin-container'});
AdminApp.Router = Ember.Router.extend({location: 'none'});
MainApp.User = DS.Model.extend({});
AdminApp.User = MainApp.User;
我从来没有使用过这些答案中的任何一个,但这是当时唯一一个真正有效的答案。如果有人对如何在今天的余烬生态系统中实现这一点有任何想法,请发布!我应该补充一点,我没有走这条路,因为我需要分享应用程序的很多内部内容。有两个独立的应用程序,但它会创建两个独立的路由器,这对于我的使用案例来说有点太过分了。我最终在catchall主应用程序路由上创建了所有“子路由”。虽然很难看,但还是奏效了。