Как мне получить список всех маршрутов моего приложения в Ember. js 3.18? - PullRequest
2 голосов
/ 06 мая 2020

Я пытаюсь создать автоматическую c навигацию.

Как мне получить список всех маршрутов моего приложения в Ember. js 3.18?

Этот вопрос спрашивали 4 года a go, и ответы кажутся устаревшими и hack-i sh.

Я пробовал несколько вещей. Такой код дает мне текущее имя маршрута. Но это не то, что я хочу: мне нужен объект всех доступных маршрутов.

В компоненте JS:

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

export default class navComponent extends Component {
  @service router;
}

В шаблоне:

{{router.currentRouteName}}

1 Ответ

3 голосов
/ 07 мая 2020

Насколько мне известно, для этого не существует API publi c. Однако вы можете получить то, что хотите, через частный API:

this.router._router._routerMicrolib.recognizer.names

Это возвращает объект, ключи которого являются маршрутами в вашем приложении. Он также добавляет маршруты _loading и _error, так что вы можете сделать некоторую фильтрацию, в зависимости от ваших потребностей.

Если вы решите использовать это, я бы посоветовал использовать тест! Частные API-интерфейсы могут измениться, когда выйдет новая версия Ember. js, поэтому тест предотвратит неприятные сюрпризы после обновления.

...