gpt4 book ai didi

dart - 在第一页加载时,我如何从指令 (AngularDart) 中知道当前路线是什么?

转载 作者:行者123 更新时间:2023-12-04 20:08:45 25 4
gpt4 key购买 nike

在第一页加载时,我如何从指令中知道当前路线是什么?

不确定这是否是一个错误,或者我没有正确配置。我有一个注入(inject)路由器的指令。我听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 类。我猜一个带有路由器的指令是要走的路,但也许有更好的东西。

最佳答案

也许您需要等待路由完成:

var subscription;
subscription = router.onRouteStart.listen((e) {
subscription.cancel();
e.completed.then((_) {
toggleActive();
});
});

关于dart - 在第一页加载时,我如何从指令 (AngularDart) 中知道当前路线是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21523063/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com