使用Angular2 Change检测机制

时间:2016-02-22 09:06:51

标签: angular

我是否可以知道我的对象的后代属性是否已被更改? 我可以订阅一些会注意到我的事件吗?

1 个答案:

答案 0 :(得分:0)

如果它们是@Input() myProp,那么您可以使用ngOnChanges(changes)实施@Output()并触发事件,但是您需要准备好您的descandants来执行此操作。

@Component({
  selector: 'child-cmp'
}) {
export class Child {
  @Input() fooInput:string;
  @Input() barInput:number;
  @Output() changes:EventEmitter = new EventEmitter();

  ngOnChanges(changes) {
    this.changes.emit(changes);
  }
}
<child-cmp (changes)="childChangesHandler($event)">

@Output()发出的事件不会冒泡,因此您只会收到直接子女的通知。如果您需要更多级别,请使用共享服务。