我正在尝试构建自动导航。
如何在 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。但是,您可以通过私有(private) API 获得您想要的东西:
this.router._router._routerMicrolib.recognizer.names
这会返回一个对象,其中键是应用程序中的路由。它还添加了 _loading
和 _error
路由,因此您可能需要根据需要进行一些过滤。
如果您决定使用它,我建议您进行测试!当 Ember.js 新版本发布时,私有(private) API 可能会发生变化,因此测试可以防止您在更新后出现意外情况。
关于ember.js - 如何在 Ember.js 3.18 中获取我的应用程序的所有路由列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61641086/