私のangular2サービスで 'AOP'を使用する場合は、例えば私のサーバーをリクエストしてデータを取得したい場合、コードを返すかどうかチェックします。この戻りコード、例えば角度注入サービスでカスタムデコレータを使用する方法
:ここ は私のサービスです。
@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
は、いくつかのカスタムHTTPヘッダー、ボディなどのための私の角2のhttpラッパー..です
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;
}
、ここでエラーです:
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), <
良いを試してみてください!素敵な答えは、ありがとう! – junk