我正在创建一个扩展this
然后通过includeEventsIn
函数扩展includeEventsIn
关键字的类,EventAggregator
将使用EventAggregator类型扩展BaseService,请参阅代码{{3} }。
问题
BaseService
类中包含@transient()
export class BaseService extends HttpClient {
constructor() {
super();
includeEventsIn(this);
}
}
方法和道具以及HttpClient? 这是代码。
{{1}}
答案 0 :(得分:2)
除非绝对必要,否则在构建Aurelia应用程序时不应该使用继承(我认为它永远不必要)。赞成合成而不是继承。
例如,在您的情况下,我会Service
(不是BaseService
,因为您将不再使用继承)依赖于HttpClient
和EventAggregator
。我怀疑你真的需要通过调用includeEventsIn
添加的所有功能。话虽如此,如果你确实需要它,那么你可以简单地将这三个函数添加到Service
。
import {inject, EventAggregator} from 'aurelia-framework';
import {HttpClient} from 'aurelia-fetch-client';
@inject(HttpClient, EventAggregator)
export class Service {
constructor( http, ea ) {
this.http = http;
this.ea = ea;
}
}
然后,您可以在实现所需的任何功能后,根据需要将此类注入另一个类。