我刚刚在我的项目中遇到了一个场景,并想了解它为什么会发生。
我有一个子组件,从输入中获取变量。
子组件使用{{myVariable}}呈现输入。
然后将此输入传递给服务。
服务保存此变量。
与父或子无关的完全不同的组件然后向此变量请求相同的服务。
然后,服务将此变量传递给该不同的组件。
当不同的组件直接编辑此变量时,它也会编辑变量的子组件版本。
为什么子组件的输入变量检测到变化并从完全不同的组件中呈现编辑?
(编辑) 我的代码:
childComponent {
@Input() post;
onClick() {
this.service.setPost(post)
}
}
PostService {
private post;
getPost() {
var post = this.post;
this.post = null;
return post;
}
setPost(post) {
this.post = post;
}
}
randomComponent {
post;
ngOnInit() {
this.post = this.posts.service.getPost();
this.post.title = "blah";
// This is where the childComponent's post title will change to "blah".
}