我该如何在Angular中使用自定义装饰器包装组件方法,以确保如果当前用户有权限执行该功能,则该函数应完成其工作?
public isAdmin = condition ? true: false;
@Permission(isAdmin)
createComponent() {
this.stepContainer.clear();
const stepContainerComponent: ComponentFactory<any> = this.resolver.resolveComponentFactory(StepContainerComponent);
this.componentRef1 = this.stepContainer.createComponent(stepContainerComponent);
}
据我了解,article的遍历与装饰器模式相同。但是,当我将任何装饰器应用于组件内部的任何方法时,即使我没有打开该特定组件,Angular也会调用该方法(但是我正在上载该组件所占用的应用程序的特定模块)。这是怎么运作的?
这是我尝试过的。如果我手动设置该值,则可以使用; @Permission(true)
export function Permission(value) {
return function (target, key, descriptor) {
if (value) {
return descriptor;
} else {
descriptor.value = () => console.log('You dont have that permission');
return descriptor;
}
};