由于我是从CanActivate的第4版迁移过来的,所以我最近遇到了AngularDart注释方面的问题。实际上,CanActivate注释没有运行。我的守则:
import 'dart:html' as html;
import 'package:angular/angular.dart';
import 'package:angular_router/angular_router.dart';
import 'package:maho_enterprise/app_component.dart';
// Others import
@Component(selector: "view-main"
,templateUrl: "main_component.html"
,styleUrls: const ["main_component.css"]
,directives: const [TopBarComponent,SideBarComponent])
@CanActivate(verifyIfUserIfAuthenticate)
class MainComponent {
}
bool verifyIfUserIfAuthenticate(ComponentInstruction next, ComponentInstruction prev) {
html.window.console.info("CanActivate works correctly");
AuthenticationService service = new AuthenticationService.empty();
bool connected = service.isConnected();
html.window.console.info("Value connected : "+connected.toString());
if(!connected) {
Router router = myInjector.get(Router);
router.navigateByUrl("/login");
return false;
}
return true;
}有人在AngularDart的第4版中遇到过这个问题吗?谢谢你的帮助。
发布于 2017-09-14 23:50:14
不幸的是,CanActivate在AngularDart 4.0.0中不再受支持。它需要非常特殊的编译器代码,不能长期支持,而且路由器正在5.x.x中进行更改。作为解决办法,我建议使用OnActivate生命周期方法。
我将添加一个bug来删除API并记录此更改。
https://stackoverflow.com/questions/46229439
复制相似问题