我正在尝试建立自动导航。
如何在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出现时,专用API可能会更改,因此测试可以防止您在更新后感到意外。