Assign 4 Practical
Assign 4 Practical
named `DataService` with methods to send and receive data. - Use this service to enable
communication between two sibling components. - Demonstrate passing data from one
component to another without using @Input() or @Output().
@Injectable({
providedIn: 'root',
})
export class DataService {
private dataSubject = new BehaviorSubject<any>(null); // Default value can be null or any
initial value
data$ = this.dataSubject.asObservable();
@Component({
selector: 'app-component-a',
templateUrl: './component-a.component.html',
styleUrls: ['./component-a.component.css']
})
export class ComponentAComponent{
sendMessage() {
this.dataService.sendData(this.message);
}
5. component-a.component.html
<div>
<h2>Component A</h2>
<input [(ngModel)]="message" placeholder="Enter message">
<button (click)="sendMessage()">Send to Component B</button>
</div>
6.component-b.component.ts
ngOnInit() {
this.dataService.data$.subscribe((data) => {
this.receivedMessage = data;
});
}
}
7. component-b.component.html
<div>
<h2>Component B</h2>
<p>Received Message: {{ receivedMessage }}</p>
</div>
8.app.module.ts
@NgModule({
declarations: [
AppComponent,
ComponentAComponent,
ComponentBComponent
],
imports: [
BrowserModule,
AppRoutingModule,FormsModule
],
providers: [DataService],
bootstrap: [AppComponent]
})
export class AppModule { }