2016-08-08 51 views
1

比方說,我想要使用Aurelia的功能...功能,以創建一個「用戶」功能來管理用戶,並且對於各種粗暴操作我有不同的看法。如何組織創建讀取更新刪除的路由?在功能中完成了嗎?它是在應用程序中完成的?它們的一些組合?請舉個例子。路由如何與Aurelia中的功能配合使用?

回答

0

一個不會簡單地添加路由通過一個功能。但是,如果您正在構建更大的應用程序,則可以使用依賴注入容器嚮應用程序公開一個「路由」對象,這些對象可以使用和擴展。

main.js

import { MyRouteConfig } from 'myRouteConfig'; 

@inject(MyRouteConfig) 
export class App { 

    constructor(config) { 
     this.routes = config.routes; 
    } 

    configureRouter(config, router) { 
     config.map(this.routes); 
    } 
} 

的特徵是通過其傳遞的奧裏利亞對象configure函數拉入。您可以使用Aurelia對象DI容器來獲取您的MyRouteConfig對象的實例;

功能/ index.js

import { MyRouteConfig } from '../myRouteConfig'; 

export function configure(aurelia) { 

    let config = aurelia.container.get(MyRouteConfig); 
    Array.prototype.push.apply(config.routes, [ 
     { route: 'feature', moduleId: 'feature/home' }, 
     { route: 'feature/edit', moduleId: 'feature/edit' } 
    ]) 
} 

然而,這是不是在所有的最佳做法。最好是巧妙地使用這些工具,並且最好是一種黑客攻擊。這種方法存在很多缺陷,包括難以載入正確的模塊路徑和重疊路線,如果您真的知道自己在做什麼,則只應使用該策略。這就是說,它可以完成。

+0

推薦的方法是什麼?我覺得我很困惑,因爲我有路由到一個不是功能的子目錄。但我正在考慮製作這些功能,並試圖從路由角度弄清楚如何使用這些功能。 – xenoterracide

+0

如果有路由,比這可能是您的應用程序的組成部分。功能就像小本地插件,模塊化。請勿將功能用於應用程序的組成部分。 –

+0

如果這個答案對你有幫助,請注意upvote,如果它回答了你的問題,請接受。 –