【发布时间】:2018-08-12 01:27:43
【问题描述】:
我有一个父组件和一个子组件。 我正在将一个方法从父组件传递给子组件。该子组件调用父组件传递的方法并将“this”(子组件的实例)发送给父组件。 现在,如果我使用上面传递的实例更改子组件中的任何属性,它不会检测到任何更改。
例如,
@Component({...})
export class Parent {
toChild(obj) {
obj.mssg = "changes"; //this should trigger change detection in child component
}
}
Template:
<div>
<child [toChange]="toChange"></child>
</div>
@Component({...})
export class Child {
mssg:string = "";
@Input() toChild:Function;
handleOnClick(evt) {
this.toChild(this);
}
}
Template:
<div (click)="handleOnClick($event)">{{mssg}}</div>
【问题讨论】:
-
更好地格式化您的代码并阐明您的要求。这是不可读的
-
将值传递给子组件而不是函数更好,因为您将值从父值传递给子组件将反映在子组件中
-
如果你想调用父方法使用EventEmitter...
-
更新代码,请立即查看。
-
在孩子中,输入被称为
toChild,但您使用toChange传递它