Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ember.js/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Ember.js 3.18中获得应用程序所有路由的列表?_Ember.js_Routes_Navigation - Fatal编程技术网

如何在Ember.js 3.18中获得应用程序所有路由的列表?

如何在Ember.js 3.18中获得应用程序所有路由的列表?,ember.js,routes,navigation,Ember.js,Routes,Navigation,我正在尝试建立一个自动导航系统 如何在Ember.js 3.18中获得应用程序所有路由的列表 这个问题是4年前提出来的,答案似乎过时了,有点老套 我一直在尝试几件事。这类代码为我获取当前路由名称。但这不是我想要的:我想要一个包含所有可用路由的对象 在组件JS中: import { inject as service } from '@ember/service'; export default class navComponent extends Component { @service

我正在尝试建立一个自动导航系统

如何在Ember.js 3.18中获得应用程序所有路由的列表

这个问题是4年前提出来的,答案似乎过时了,有点老套

我一直在尝试几件事。这类代码为我获取当前路由名称。但这不是我想要的:我想要一个包含所有可用路由的对象

在组件JS中:

import { inject as service } from '@ember/service';

export default class navComponent extends Component {
  @service router;
}
在模板中:


据我所知,没有公开的API。但是,您可以通过专用API获得所需:

this.router._router._routerMicrolib.recognizer.names
这将返回一个对象,其中键是应用程序中的路由。它还添加了
\u加载
\u错误
路由,因此您可能需要根据需要进行一些过滤


如果你决定用这个,我建议你用一个测试!当新版本的Ember.js发布时,私有API可能会发生变化,因此测试将防止您在更新后遇到不好的惊喜。

我用这个答案实现了一个解决方案。这太棒了。