Angular 角度:9如何从另一个同级组件更改变量?
我在更新Component1中的字符串变量时遇到问题,在这里我更改了Component2中的值 组件相互独立。Component1的HTML模板中的值不会自行更新 有没有办法强制更新模板?除此之外,我还尝试了:订阅、@Input/@Output——但我可能做得不对。除此之外,我认为我不能在模板(comp2)中包含选择器,因为它将在component1中显示来自component2的html模板。 我希望我错了。请引导我走出我的错误 插图: 看一看Angular 角度:9如何从另一个同级组件更改变量?,angular,typescript,data-binding,Angular,Typescript,Data Binding,我在更新Component1中的字符串变量时遇到问题,在这里我更改了Component2中的值 组件相互独立。Component1的HTML模板中的值不会自行更新 有没有办法强制更新模板?除此之外,我还尝试了:订阅、@Input/@Output——但我可能做得不对。除此之外,我认为我不能在模板(comp2)中包含选择器,因为它将在component1中显示来自component2的html模板。 我希望我错了。请引导我走出我的错误 插图: 看一看 你在正确的轨道上。如果组件之间不是父子关系,那么
你在正确的轨道上。如果组件之间不是父子关系,那么就没有必要查看
@Input
如果只是需要在同级组件中显示的数据,则使用服务和html绑定。请看这篇博文:
但如果你也需要根据变化做些事情,那么
行为主体
就是一条出路(Soham的答案)。你们都是对的。这篇文章对我帮助很大!非常感谢你。
// RxJS v6+
import { BehaviorSubject } from 'rxjs';
const subject = new BehaviorSubject(123);
// two new subscribers will get initial value => output: 123, 123
subject.subscribe(console.log);
subject.subscribe(console.log);
// two subscribers will get new value => output: 456, 456
subject.next(456);
// new subscriber will get latest value (456) => output: 456
subject.subscribe(console.log);
// all three subscribers will get new value => output: 789, 789, 789
subject.next(789);
// output: 123, 123, 456, 456, 456, 789, 789, 789