我如何在 Ember.js 3.18 中获得我的应用程序的所有路由列表?
How would I get a list of all the routes of my application in Ember.js 3.18?
我正在尝试构建自动导航。
如何在 Ember.js 3.18 中获取我的应用程序的所有路由列表?
这个问题是 4 年前提出的,答案似乎已经过时而且很老套。
我一直在尝试几件事。这种代码让我得到了当前的路线名称。但这不是我想要的:我想要一个包含所有可用路线的对象。
在组件 JS 中:
import { inject as service } from '@ember/service';
export default class navComponent extends Component {
@service router;
}
在模板中:
{{router.currentRouteName}}
据我所知,没有 public API。但是,你可以通过私有 API:
得到你想要的
this.router._router._routerMicrolib.recognizer.names
这 returns 一个对象,其中的键是您应用程序中的路由。它还添加了 _loading
和 _error
路由,因此您可能需要根据需要进行一些过滤。
如果您决定使用这个,我建议您使用测试!当 Ember.js 的新版本发布时,私人 APIs 可能会发生变化,因此测试将防止您在更新后感到意外。
我正在尝试构建自动导航。
如何在 Ember.js 3.18 中获取我的应用程序的所有路由列表?
这个问题是 4 年前提出的,答案似乎已经过时而且很老套。
我一直在尝试几件事。这种代码让我得到了当前的路线名称。但这不是我想要的:我想要一个包含所有可用路线的对象。
在组件 JS 中:
import { inject as service } from '@ember/service';
export default class navComponent extends Component {
@service router;
}
在模板中:
{{router.currentRouteName}}
据我所知,没有 public API。但是,你可以通过私有 API:
得到你想要的this.router._router._routerMicrolib.recognizer.names
这 returns 一个对象,其中的键是您应用程序中的路由。它还添加了 _loading
和 _error
路由,因此您可能需要根据需要进行一些过滤。
如果您决定使用这个,我建议您使用测试!当 Ember.js 的新版本发布时,私人 APIs 可能会发生变化,因此测试将防止您在更新后感到意外。