为灰烬应用多个路由器(Multiple routers for an Ember app)

2019-10-23 05:07发布

是否有可能有多个router.js为灰烬应用程序?

默认情况下,一个router.js将有

import Ember from 'ember';
import config from '../../config/environment';

var Router = Ember.Router.extend({
  location: config.locationType
});

export default Router.map(function() {
  this.resource('sampleroute');

});

和其他router.js将有

import Ember from 'ember';
import config from '../../config/environment';

var Router = Ember.Router.extend({
  location: config.locationType
});

export default Router.map(function() {
  this.resource('sampleroute2');

});

所有我需要的是让灰烬应用程序读取我的第二个路由器(router2.js)在默认情况下读取默认router.js设置路线。

Answer 1:

您可以定义一个函数和导出功能类似内部UR在seprate文件路径

page1.js

export default function() {
  this.route('page1');
}

page2.js

export default function() {
  this.route('page2');
}

然后导入到你的router.js文件。

import page1Routes from 'page1';
import page2Routes from 'page2';

var Router = Ember.Router.extend({
  location: config.locationType
});

Router.map(function() {
  page1Routes.call(this);
  page2Routes.call(this);       
});

export default Router;

您可以拨打Router.map反复增加新的航线。 因此你可以导入乌尔其他途径相同的方式。



Answer 2:

如图所示blessenm你可以单独的功能上面 。 但在这种情况下,你会继续保持依赖于这些文件。 而router.js继续是几乎所有的开发人员使用的资源。

除了这个问题的答案:对于每个模件,就可以生成一个“MODUL-route.js”文件导出该功能。 然后使用实例初始化,您可以收集所有这些功能和运行Router.map(...); 功能适用于所有加载的文件。



文章来源: Multiple routers for an Ember app