Я хочу прочитать декорированные значения параметров из декорированного метода в угловых пользовательских декорациях
Ниже приведены мои функции декоратора в машинописи
export function URL(target: Object, propertyKey: string, parameterIndex: number) {
let existingRequiredParameters: number[] = Reflect.getOwnMetadata(url, target, propertyKey) || [];
existingRequiredParameters.push(parameterIndex);
Reflect.defineMetadata(url, existingRequiredParameters, target, propertyKey);
}
export enum HttpMethodType {
GET, POST, PUT
}
export function HttpMethod(type: HttpMethodType) {
return function (target: any, propertyKey: string, descriptor: PropertyDescriptor) {
let method = descriptor.value;
descriptor.value = function(){
//how do get the parameter that was decorated with @URL here in this code.
//let method = descriptor.value;
let urlParameters: number[] = Reflect.getOwnMetadata(url, target, propertyKey);
let urlParameterIndex;
if (!urlParameters || urlParameters.length === 0) {
throw new Error("Please have @URL annotation");
}
if (urlParameters.length > 1) {
throw new Error("Can not have multiple annotations for @req");
}
if (type === HttpMethodType.GET) {
//pass the parameter decorated with @url to http.get method
let portResultsObservable = this.http.get(null, { withCredentials: true })
}
// the arguments that i get is not matching the actual method that was decorated.
return method.apply(this, arguments);
}
}
}
Я хочу вызвать мой метод декоратор и декоратор параметров, как показано ниже. Я хочу получить доступ к значению параметра paramOne в функции декоратора HttpMethod, я попытался передать..args[]:any во внутреннюю функцию с помощью HttpMethod, но я не могу получить эти аргументы. Есть ли способ получить доступ к этим аргументам?
@HttpMethod(HttpMethodType.GET)
callingfunction(@URL paramOne:string){
console.log("test");
}