2015-05-26 4 views
1

Возможно ли иметь несколько router.js для приложения Ember?Несколько маршрутизаторов для приложения Ember

По умолчанию один 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'); 

}); 

Все, что мне нужно, чтобы сделать приложение Ember, чтобы прочитать мой второй маршрутизатор (router2.js), который по умолчанию читает по умолчанию router.js для настройки маршрутов.

+0

Зачем вам нужно это делать? Что ур усекасе? – blessenm

+0

Я хочу два routers.js для одного приложения. Второй входит в приложение, основанное на требованиях. – radcliff

+0

https://github.com/emberjs/ember.js/issues/1847 – blessenm

ответ

0

Вы можете определить ур маршруты в seprate файлов внутри функции и экспорта, которые функционируют как

page1.js

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

page2.js

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

Затем импортировать, что в маршрутизаторе .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 повторно, чтобы добавить новые маршруты. Таким образом, вы можете импортировать другие маршруты таким же образом.

0

Вы можете разделить ваши функции как показанного на фотографии: above. Но в этом случае вы продолжаете поддерживать зависимость от этих файлов. И router.js продолжает быть ресурсом, используемым почти всеми разработчиками.

В дополнение к этому ответу: Для каждого модуля вы можете сгенерировать файл «modul-route.js», экспортирующий эту функцию. Затем, используя инициализаторы-экземпляры, вы можете собрать все эти функции и запустить Router.map (...); функция для всех загруженных файлов.

Смежные вопросы