[英]Getting routes of a child component in aurelia
我不是Aurelia大師,也不是初學者。 到目前為止,我還沒有解決問題的方法,但是我認為必須存在一種希望的簡便方法來執行以下操作:
我有了一個非常基本的結構,其中包含app.js和一些組件(例如admin.js ...)。 因為我想導航所有組件的路線,所以我需要將這些路線放入我的app.js中。 簡單或愚蠢的問題:我如何實現這一目標? 我試圖簡單地注入組件,但是無論我做什么,我都無法訪問router屬性。
示例管理組件路由器:
configureRouter(config, router) {
config.map([
{ route: '', name: 'default', moduleId: 'components/admin/default/default' },
{ route: 'roles', name: 'roles', moduleId: 'components/admin/roles/roles', title: 'Rollenverwaltung' },
{ route: 'users', name: 'users', moduleId: 'components/admin/users/users', title: 'Nutzerverwaltung' },
{ route: 'employees', name: 'employees', moduleId: 'components/admin/employees/employees', title: 'Mitarbeiterverwaltung' }
]);
this.router = router;
}
我在應用程序組件中嘗試過的
static inject() { return [AuthService, Admin]; }
constructor(authService, admin) {
this.auth = authService;
this.adminRouter = admin;
}
我知道,只要我沒有加載該組件,管理員的路由器就始終是空的。 但是即使加載了組件,路由器對象也是未定義的。
一個沒有運行的Gist更好地顯示了我想要的(希望)
也許我在這里遇到了一些基本的錯誤,並且不了解aurelia甚至js的工作方式?
謝謝您的幫助。
如果Admin
組件本身沒有組成,則您將無法訪問路由器,即使父組件也不會“繼承”來自admin
的路由。
如果您想在應用程序周圍定義路由,然后將它們放置到一個地方,那么類似的事情可能對您有用-
parent.js
import {Admin} from './admin';
export class Parent {
static inject = [Admin];
constructor(admin) {
this.admin = admin;
this.admin.routes.forEach(route => {
this.router.addRoute(route);
}
}
}
admin.js
export class Parent {
routes = [
{ route: '', name: 'default', moduleId: 'components/admin/default/default' },
{ route: 'roles', name: 'roles', moduleId: 'components/admin/roles/roles', title: 'Rollenverwaltung' },
{ route: 'users', name: 'users', moduleId: 'components/admin/users/users', title: 'Nutzerverwaltung' },
{ route: 'employees', name: 'employees', moduleId: 'components/admin/employees/employees', title: 'Mitarbeiterverwaltung' }
];
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.