Angular 6装饰器仅加载一次

时间:2019-01-22 17:09:18

标签: angular6

我正在使用angular6 cli创建一个项目。并创建一个装饰器以检查每个组件的身份验证。
但是,当我重新加载页面并访问组件时,仅一次调用此装饰器。

例如:我为user page应用装饰器,步骤将是,从Home Page我访问User page,将调用装饰器。然后,我回到Home page并重新访问User page,装饰器没有被调用。如果我重新加载页面并重新访问user page,装饰器将被调用。

该问题的任何解决方案。

我应用了延迟加载模块,在UserModule中定义了UserComponent,然后像这样在AppRouting中加载:

{
    path: "user",
    loadChildren: "./user/user.module#UserModule"
}

我的装饰器:

export function authorize() {
    return function (target: any) {
        let userLogged = LocalStorage.userIsLogged();

        if (userLogged) {
            //Do something
            Reflect["defineMetadata"](target.name, null, target);
        } else {
            throw new Error();
        }
    }
}

我的组件:

@authorize()
@Component({
    templateUrl: './user.component.html'
})
export class UserComponent {
    constructor() {}
}

我不知道为什么。请帮助,谢谢。

0 个答案:

没有答案