admin管理员组

文章数量:1406950

I am trying to take out router configuration from app.js file and put it in a separate file (app.router.js). This is probably an easy thing to do but I don't know how to do it.

Current app.js file looks like this:

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'}

      ]);

    });

  }
}

Once the configuration part is in a separate file, I believe I have call it like this in app.js:

this.router.configure(myRouterConfig);

Please let me know how to do it with code example.

I am trying to take out router configuration from app.js file and put it in a separate file (app.router.js). This is probably an easy thing to do but I don't know how to do it.

Current app.js file looks like this:

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'}

      ]);

    });

  }
}

Once the configuration part is in a separate file, I believe I have call it like this in app.js:

this.router.configure(myRouterConfig);

Please let me know how to do it with code example.

Share Improve this question edited Mar 25, 2015 at 22:28 Jordan Running 106k18 gold badges188 silver badges187 bronze badges asked Mar 25, 2015 at 22:18 Golden moleGolden mole 5036 silver badges14 bronze badges
Add a ment  | 

1 Answer 1

Reset to default 9

The solution is easier to understand when you realize that the argument you pass to this.router.configure is just a function. To put your router configuration in a separate file, just have that file export a function that takes one argument (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'}
  ]);      
}

Then, in app.js:

import appRouter from 'app.router';

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

You can, of course, name appRouter anything you want.

本文标签: javascriptPut router configuration in a separate file in AureliaStack Overflow