代码之家  ›  专栏  ›  技术社区  ›  Christian Amani

CanActivate不起作用AngularDart 4

  •  3
  • Christian Amani  · 技术社区  · 9 年前

    自从我从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 回复  |  直到 9 年前
        1
  •  1
  •   matanlurey    9 年前

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

    我将添加一个bug来删除API并记录此更改。