Je veux utiliser 'AOP' dans mon service angular2, par exemple, je veux demander mon serveur et obtenir des données, et je vais vérifier le code de retour, je vais montrer le message par ce code de retour,Comment utiliser le décorateur personnalisé dans le service injectable angulaire
par exemple: voici mon service:
@Injectable()
export class TemplatesService {
constructor(private http: HttpHelper) {
}
@show_message
public templates(search_params = {}): Observable<Array<Template>> {
let params = new URLSearchParams()
for (let key in search_params) {
params.set(key, search_params[key])
}
return this.http.AUTH_HTTP_GET('api/templates.json?per=10000', params).map(data=> this.http.extractData(data).templates)
}
}
HttpHelper
est mon emballage angulaire 2 http pour certains en-tête HTTP personnalisé, le corps etc ..
le décorateur show_message:
export function show_message(target:any,key:any,descriptor:any){
console.log(target,key ,descriptor)
const method = descriptor.value
descriptor.value = (...args:any[]) => {
let ret = method.apply(target, args);
return ret;
}
console.log(method)
return descriptor;
}
et voici l'erreur:
VM40526 TemplateIndexComponent_Host.ngfactory.js:5
ERROR TypeError: Cannot read property 'AUTH_HTTP_GET' of undefined
at Object.TemplatesService.templates (eval at <anonymous> (app.cfb7cea….js:194), <anonymous>:31:25)
at TemplatesService.descriptor.value [as templates] (eval at <anonymous> (app.cfb7cea….js:2349), <
bon! belle réponse, merci! – junk