2017-09-14 20 views
2

AngularDartのバージョン4から移行して以来、私は最近CanActivateアノテーションに問題がありました。実際、CanActivate注釈は実行されません。 マイコード:CanActivateが動作しないAngularDart 4

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

残念ながらCanActivateAngularDart 4.0.0でサポートされていません。それは長期的にサポートすることができない非常に特別なコンパイラコードを必要とし、ルータは5.x.xで変化しています。回避策として、OnActivateライフサイクルメソッドを使用することをお勧めします。

APIを削除してこの変更を記録するバグを追加します。

+0

実際、あなたの同僚@Alorenzenが最近、angular_routerパッケージのいくつかのクラスを書き直したことに気付きました。 助けてくれてありがとう。 –

関連する問題