Angular 其他服务中的注入服务出现故障2
我在另一个服务中注入服务时遇到问题。 我使用handleError方法获得了一个ContactService来从服务器获取数据。 我得到了一个AlertService来抛出handleError方法的错误。 我已经在我的核心模块中声明了contactService和AlertService。 但是当我调用alertService.submitNewMessage时,它显示this.alertService是未定义的。 请帮忙Angular 其他服务中的注入服务出现故障2,angular,typescript,angular2-services,Angular,Typescript,Angular2 Services,我在另一个服务中注入服务时遇到问题。 我使用handleError方法获得了一个ContactService来从服务器获取数据。 我得到了一个AlertService来抛出handleError方法的错误。 我已经在我的核心模块中声明了contactService和AlertService。 但是当我调用alertService.submitNewMessage时,它显示this.alertService是未定义的。 请帮忙 @Injectable() export class AlertSer
@Injectable()
export class AlertService {
private $currentMessages: BehaviorSubject<string> = new BehaviorSubject('');
public currentMessages: Observable<string> = this.$currentMessages.asObservable();
constructor() { }
submitNewMessage(msg: string): void {
this.$currentMessages.next(msg);
}
}
我怀疑的问题与此有关
return this.http.get(this.contactsUrl)
.map(this.extractData)
.catch(this.handleError);
这将类方法注册为回调,这是不正确的,因为This
不会正确绑定
您可以通过将这些函数包装在箭头函数中来解决此问题,这样当到达内部代码时,此
仍将引用服务,而不是回调函数:
return this.http.get(data => this.contactsUrl(data))
.map(data => this.extractData(data))
.catch(data => this.handleError(data));
alertService.submitNewMessage的代码在哪里?@Sajeetharan抱歉,我的错误,我会修复它。您的contactservice没有用@InjectableI修饰,就像您的评论一样,但仍然显示消息:eError:无法读取undefinedHey的属性“submitNewMessage”,伙计。谢谢你的帮助。在多次重建后,“此”上下文已修复
return this.http.get(this.contactsUrl)
.map(this.extractData)
.catch(this.handleError);
return this.http.get(data => this.contactsUrl(data))
.map(data => this.extractData(data))
.catch(data => this.handleError(data));