Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Dart CanActivate不起作用角度镖4_Dart_Angular Dart_Angular Router - Fatal编程技术网

Dart CanActivate不起作用角度镖4

Dart CanActivate不起作用角度镖4,dart,angular-dart,angular-router,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.dar

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

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


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

事实上,我注意到您的同事@Alorenzen最近重写了angular_路由器包的一些类。感谢您的帮助。您可以在组件类中使用
implements-CanActivate