【问题标题】:CanActivate does not work AngularDart 4CanActivate 不起作用 AngularDart 4
【发布时间】:2017-09-15 07:50:14
【问题描述】:

自从我从 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 时遇到过这个问题? 感谢您的帮助。

【问题讨论】:

    标签: dart angular-dart angular-router


    【解决方案1】:

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

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

    【讨论】:

    • 确实,我注意到你的同事@Alorenzen 最近重写了 angular_router 包的一些类。感谢您的帮助。
    • 你可以在你的组件类中使用implements CanActivate
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-13
    • 1970-01-01
    • 1970-01-01
    • 2017-01-18
    • 2017-11-25
    相关资源
    最近更新 更多