Как я могу узнать, при загрузке первой страницы, каков текущий маршрут из директивы?
Не уверен, что это ошибка, или я не правильно настраиваю. У меня есть директива, которая вводит Router. Я прослушиваю события router.onRouteStart
, и когда я перезагружаю страницу, событие routeStart не запускается. Я получаю события routeStart, когда вручную запускаю изменения маршрута.
Моя директива выглядит так:
@NgDirective(
selector: '[current-route]'
)
class CurrentRoute {
Router router;
Element element;
CurrentRoute(this.element, this.router) {
toggleActive();
router.onRouteStart.listen((e) {
toggleActive();
});
}
bool isRoute() {
print(router.activePath);
print(router.root);
if (router.activePath.isEmpty) return false;
return element.attributes['current-route'] == router.activePath.first.name;
}
void toggleActive() {
if (isRoute()) {
element.classes.add('active');
} else {
element.classes.remove('active');
}
}
}
Когда я впервые
print(router.activePath); // empty list
print(router.root); // null
По сути, я хочу установить класс CSS для элемента, если этот элемент соответствует текущему маршруту. Я предполагаю, что директива с маршрутизатором - это путь, но, возможно, есть что-то лучше.