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

标签 ember.js routes navigation

我正在尝试构建自动导航。

如何在 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/

相关文章:

javascript - 将第二个子导航添加到 Accordion 样式菜单

jsf-2 - 如何在按下另一个 JSF 页面的某个按钮时返回相同的 JSF 页面

javascript - 使用 ember-data 实现单记录持久化

ruby-on-rails - 如何在 Rails 中测试任意路由?

ember.js - 从组件内部调用 ember 组件操作

asp.net-mvc - url 中的 ASP.NET MVC2 垃圾

javascript - NodeJS express : limiting access to route

css - 我将如何在同一行上使用 hr 设置导航样式

javascript - Moment js 格式化日期和时区

ember.js - 手动序列化 ember-data 模型