【问题标题】:Getting routes of a child component in aurelia在 aurelia 中获取子组件的路由
【发布时间】:2016-11-28 17:08:41
【问题描述】:

我不是 Aurelia 大师,更多的是初学者。 到目前为止,我的问题没有解决方案,但我认为必须存在一种希望简单的方法来执行以下操作:

我得到了一个包含 app.js 和一些组件(例如 admin.js ...)的非常基本的结构。 因为我想对所有组件的路线进行导航,所以我需要将这些路线放入我的 app.js 中。 简单或愚蠢的问题:我如何做到这一点? 我试图简单地注入组件,但无论我做什么,我都无法访问路由器属性。

示例管理组件路由器:

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

我知道,只要我不加载组件,管理员的路由器无论如何都是空的。但是即使加载了组件,路由器对象也是未定义的。

A not running Gist 更好地展示我想要的东西(希望如此)

也许我在这里遇到了一些基本错误并且不了解 aurelia 甚至 js 的工作方式?

感谢您的帮助。

【问题讨论】:

标签: aurelia


【解决方案1】:

如果Admin 组件本身没有组合,您将无法访问路由器,即使这样,父级也不会“继承”来自admin 的路由。

如果你想在你的应用程序周围定义路由,然后将它们拉到一个地方,也许这样的东西对你有用 -

父.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' }
  ];
}

【讨论】:

  • 好的,让我看看我是否做对了:您的想法只是定义我包含在我的 app.js(父级)中的路由对象数组并使用这些数组配置路由器?如果我错了,请纠正我。好吧,这不是我能想到的最好的解决方案,但肯定是最简单的。我会试一试。至少在我找到另一个解决方案之前。谢谢!
猜你喜欢
  • 2018-01-01
  • 1970-01-01
  • 2018-11-14
  • 1970-01-01
  • 1970-01-01
  • 2017-05-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多