CanActivate 不起作用 AngularDart 4
CanActivate does not work AngularDart 4
自从我从 AngularDart 的版本 4 迁移以来,我最近遇到了 CanActivate 注释的问题。实际上,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 时遇到过这个问题?
感谢您的帮助。
遗憾的是 CanActivate
在 AngularDart 4.0.0
中不再受支持。它需要非常特殊的编译器代码,无法长期支持,并且路由器正在 5.x.x
中更改。作为解决方法,我建议使用 OnActivate
生命周期方法。
我将添加一个错误以删除 API 并记录此更改。
自从我从 AngularDart 的版本 4 迁移以来,我最近遇到了 CanActivate 注释的问题。实际上,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 时遇到过这个问题? 感谢您的帮助。
遗憾的是 CanActivate
在 AngularDart 4.0.0
中不再受支持。它需要非常特殊的编译器代码,无法长期支持,并且路由器正在 5.x.x
中更改。作为解决方法,我建议使用 OnActivate
生命周期方法。
我将添加一个错误以删除 API 并记录此更改。