首页 > 解决方案 > 使用服务作为装饰器

问题描述

有没有办法在加载前检查某些逻辑的路由上做一个静态装饰器?例子

有一个授权装饰器

@Injector()
class Auth{
    Auth(){
        if (isLoggedIn){
        proceed();
    }else{
       showLoginRoute();
    }
   }
}

并使用

@Auth()
@Component(
   selector: 'auth-view',
   styleUrls: const ['login_component.css'],
   template:
          '<router-outlet name="dashboard" [routes]="routes.authView_routes"></router-outlet>',
   directives: const [materialDirectives, routerDirectives, coreDirectives],
      providers: const [r.Routes, materialProviders, Auth],
)
class Dashboard{
    ....
}

我知道我想做什么,但只是不知道如何完成它。目前我正在跨多个组件导入服务并进行大量重复,我希望尽可能避免这种情况。

标签: dartangular-dartangular-dart-routing

解决方案


Dart 不支持 TS 中的装饰器之类的东西。

可能对您有用的是代码生成,就像在build_value, json_serializable, ...

https://github.com/dart-lang/build


推荐阅读