我该如何以更改组件1或2上的所有值,使用Service!更新另一个组件上的值的方式来实现这一点。我知道如何使用“输出”和“输入”来完成这项工作,但是我使用的是服务。实际上,我想实现比此处显示的功能更强大的功能,但是首先,我需要了解输入交互的一部分。如果那是一次单击,那么很容易,只要单击该按钮,就可以将信息发送到服务,进行更新并发送给其订户。但是在输入的情况下,我找不到实现此目的的方法。谢谢你的帮助。 另外,如果对理解输入元素背后的逻辑有任何建议,我将非常高兴。就像,我可以阅读的任何内容。
组件1
import { Component, OnInit} from '@angular/core';
import { BehaviorServiceService } from '../service/behavior-service.service';
@Component({
selector: 'app-childtwo',
templateUrl: './childtwo.component.html',
styleUrls: ['./childtwo.component.css']
})
export class ChildtwoComponent implements OnInit {
constructor(private behaviorService: BehaviorServiceService) { }
data;
ngOnInit() {
this.behaviorService.currentMessage
.subscribe((message)=>{
this.data = message
})
}
}
组件2
import { Component, OnInit } from '@angular/core';
import { BehaviorServiceService } from '../service/behavior-service.service';
@Component({
selector: 'app-childone',
templateUrl: './childone.component.html',
styleUrls: ['./childone.component.css']
})
export class ChildoneComponent implements OnInit {
constructor(private behaviorService: BehaviorServiceService) { }
data;
ngOnInit() {
this.behaviorService.currentMessage
.subscribe((message)=>{
this.data = message
})
}
}
服务
import { Injectable } from '@angular/core';
import { HttpClient } from '@angular/common/http'
import { BehaviorSubject } from 'rxjs';
@Injectable({
providedIn: 'root'
})
export class BehaviorServiceService {
private messageSource = new BehaviorSubject('string')
currentMessage = this.messageSource.asObservable()
constructor(private http: HttpClient){
}
changeMessage(message){
this.messageSource.next(message)
}
}