Angular 2: ¿cómo detecto cambios de atributos en los atributos de entrada en un Componente?
Tengo un controlador Angular 2 que se ve así:
@Component({
selector: 'my-component',
template: '<div>The value is: {{ value }}</div>',
})
class MyComponent implements OnInit {
@Input()
value: string;
@Output
valueChange = new EventEmitter<number>();
ngOnInit() {
this.valueChange.subscribe(value => {
console.log('new value:', value); // <-- does not get triggered
});
}
}
Pero cuando el valor devalue
cambios desde un enlace de plantilla:
<my-component [value]="someValue" /> <!-- valueChange not triggered! -->
losvalueChange
el evento no se activa, por lo que, aunque la plantilla se actualiza correctamente y muestra el nuevo valor, el componente no sabe que se ha cambiado.
¿Cómo puedo detectar cuando se cambian los atributos de entrada en mi controlador?