CanActivate不适用于AngularDart 4

时间:2017-09-14 23:08:11

标签: dart angular-dart angular-router

自从我从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版的这个问题? 谢谢你的帮助。

1 个答案:

答案 0 :(得分:1)

CanActivate不再支持AngularDart 4.0.0。它需要非常特殊的编译器代码,不能长期支持,并且路由器在5.x.x中发生变化。作为一种解决方法,我建议使用OnActivate生命周期方法。

我将添加一个错误以删除API并记录此更改。