2015-03-25 14 views
6

Я пытаюсь извлечь конфигурацию маршрутизатора из файла app.js и поместить его в отдельный файл (app.router.js). Это, наверное, легко сделать, но я не знаю, как это сделать.Поместите конфигурацию маршрутизатора в отдельный файл в Aurelia

Текущий app.js файл выглядит следующим образом:

import {Router} from 'aurelia-router'; 

export class App { 

    static inject() { return [Router]; }; 

    constructor(router) { 

    this.router = router; 

    // router - put this part in a separate file 
    this.router.configure(config => { 

     config.title = 'demo'; 
     config.options.pushState = true; 
     config.map([ 

     // home routes 
     { route: ['','home'], moduleId: './home/home', nav: true, title:'Home' }, 

     // User routes 
     { route: ['user/register'], moduleId: './user/register', nav: true, title:'User Registration'} 

     ]); 

    }); 

    } 
} 

После часть конфигурации находится в отдельном файле, я считаю, что я называю это, как это в app.js:

this.router.configure(myRouterConfig); 

Пожалуйста, дайте мне знать, как это сделать с примером кода.

ответ

9

Решение проще понять, когда вы понимаете, что аргумент, который вы передаете this.router.configure, является просто функцией. Чтобы установить конфигурацию маршрутизатора в отдельный файл, просто экспортируйте этот файл в функцию, которая принимает один аргумент (config).

// app.router.js 
export default function (config) { 
    config.title = 'demo'; 
    config.options.pushState = true; 

    config.map([ 
    // home routes 
    { route: ['','home'], moduleId: './home/home', nav: true, title:'Home' }, 
    // User routes 
    { route: ['user/register'], moduleId: './user/register', nav: true, title:'User Registration'} 
    ]);  
} 

Тогда в app.js:

import appRouter from 'app.router'; 

// ...then... 
this.router.configure(appRouter); 

Вы можете, конечно, имя appRouter все, что вы хотите.

+0

Спасибо, Иордания! Это было именно то, что мне нужно! –

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

  • Нет связанных вопросов^_^