如何解决Angular Service实例化两次
我尝试提供一种简单的服务,使不同模块的不同组件相互通信。
但是每次组件使用它时都会实例化此服务。
这是服务:
import { Injectable } from '@angular/core';
import { Subject,Observable } from 'rxjs';
@Injectable({
providedIn: 'root',})
export class MessageService {
private subject = new Subject();
constructor() {
console.log('creato');
}
sendMessage(message: string) {
this.subject.next({text : message});
}
clearMessages() {
this.subject.next(new Observable());
}
getMessage(): Observable<any> {
return this.subject.asObservable();
}
}
它是导入到主模块中的共享模块的一部分:
import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
import { AppRoutingModule } from './app-routing.module';
import { AppComponent } from './app.component';
import { SharedModule } from './shared/shared.module';
import { HttpClientModule,HTTP_INTERCEPTORS } from '@angular/common/http';
import { AuthInterceptor } from './shared/interceptors/auth.interceptor';
@NgModule({
declarations: [
AppComponent
],imports: [
BrowserModule,SharedModule,HttpClientModule,BrowserAnimationsModule,AppRoutingModule
],providers: [
{
provide: HTTP_INTERCEPTORS,useClass: AuthInterceptor,multi: true
}
],bootstrap: [
AppComponent
]
})
export class AppModule { }
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。