Binding NG2-原始值更改后,原始组件的输入未更新

Binding NG2-原始值更改后,原始组件的输入未更新,binding,angular2-template,angular2-changedetection,Binding,Angular2 Template,Angular2 Changedetection,我试图使用NG2绑定,但由于某些原因,当我有多个嵌套的@Input数据时,它不起作用 我阅读并尝试了以下方面的解决方案: 但是没有运气。 我基本上有3个组件(父母->孩子->孙子) 父对象有一个数据字段,子对象和孙子对象将其作为输入。 原始值通过时没有问题 但是,当我尝试更新父组件中的该值时,子组件和孙子组件都没有更新 它遵循以下简单组成部分的精神: @Component({ selector: 'parent', template: '<button (click)="upd

我试图使用NG2绑定,但由于某些原因,当我有多个嵌套的@Input数据时,它不起作用 我阅读并尝试了以下方面的解决方案:

但是没有运气。 我基本上有3个组件(父母->孩子->孙子) 父对象有一个数据字段,子对象和孙子对象将其作为输入。 原始值通过时没有问题 但是,当我尝试更新父组件中的该值时,子组件和孙子组件都没有更新

它遵循以下简单组成部分的精神:

 @Component({
 selector: 'parent',  
 template: '<button (click)="updateData()">
             <child [data]="data"></child>'
 })

 export class ChildComponent {  var data = { a : 0};
     click() { this.data.a+=1; }     
 }

 @Component({
 selector: 'child',  
 template: '<grand [data]="data"></grand>' })

 export class GrandComponent {  
     @Input data:any;     
 }

 @Component({
 selector: 'grand',  
 template: '<div>{{data.a}}</div>' })

 export class ParentComponent {  
     @Input data:any;     
 }
@组件({
选择器:'父',
模板:'
'
})
导出类ChildComponent{var data={a:0};
单击(){this.data.a+=1;}
}
@组成部分({
选择器:'子',
模板:'})
导出类组件{
@输入数据:任意;
}
@组成部分({
选择器:“grand”,
模板:{{data.a}}})
导出类ParentComponent{
@输入数据:任意;
}

这里有一个答案: