当孩子在Angular中更改值时,为什么父组件会发生变化?

时间:2018-03-27 21:32:42

标签: angular angular-components

我正在使用Angular 4,我有一个ParentComponent和一个像这样的ChildComponent

class ParentComponent {
   private propertyParent:object

   ngOnInit(){
     this.propertyParent={
       name: 'Name'
     }
   }
}    

class ChildComponent {
   @input private propertyChild:object

   ngOnInit(){         
   }
} 

<parent-component>
   <child-component [propertyChild]="propertyParent">
   </child-component>
</parent-component>

我有一个问题,当在ChildComponent中更改propertyChild时,ParentComponent中的propertyParent的值正在改变。子组件中的更改是否影响到propertyParent?

1 个答案:

答案 0 :(得分:0)

是的,这是预期的结果。

var hello = {
  example: "an example"
};

var t = hello;

t.example = "yawn";

console.log(hello, t);

这是因为当您以这种方式分配对象时,您基本上创建了指向相同内存分配的2个指针,即原始对象。

这是一个角度示例,证明您不需要双向绑定。 https://stackblitz.com/edit/angular-jj6mnj