2015-03-25 14 views
6

Yönlendirici yapılandırmasını app.js dosyasından alıp ayrı bir dosyaya (app.router.js) koymaya çalışıyorum. Bu muhtemelen yapılması kolay bir şey ama nasıl yapacağımı bilmiyorum.Yönlendirici yapılandırmasını ayrı bir dosyaya yerleştirin: Aurelia

Güncel app.js dosya şuna benzer:

this.router.configure(myRouterConfig); 

bana bildirin: yapılandırma parçası ayrı bir dosyada sonra, ben app.js böyle diyoruz olduğuna inanıyorum

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

     ]); 

    }); 

    } 
} 

kod örneği ile nasıl yapılır.

cevap

9

this.router.configure'a ilettiğiniz argümanın yalnızca bir işlev olduğunu anladığınızda çözümün daha kolay anlaşılır. Yöneltici yapılandırmanızı ayrı bir dosyaya koymak için, yalnızca bu dosyanın bir bağımsız değişken (config) alan bir işlevi dışa aktarmasını sağlayın. Sonra

// 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 içinde:

import appRouter from 'app.router'; 

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

Elbette, adı appRouter şey istediğiniz edebilirsiniz.

+0

Teşekkür ederim, Ürdün! Tam olarak ihtiyacım olan buydu! –