Tôi đã có một 2 điều khiển góc mà trông như thế này:Góc 2: làm cách nào để phát hiện các thay đổi thuộc tính đối với các thuộc tính đầu vào trên một Thành phần?
@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
});
}
}
Nhưng khi giá trị của value
thay đổi từ một mẫu ràng buộc:
<my-component [value]="someValue" /> <!-- valueChange not triggered! -->
Sự kiện valueChange
không được kích hoạt như vậy, mặc dù mẫu chính xác cập nhật và hiển thị giá trị mới, thành phần không biết nó đã bị thay đổi.
Làm cách nào để phát hiện khi thuộc tính đầu vào trên bộ điều khiển của tôi bị thay đổi?
Bạn có thể sử dụng thuộc tính đầu vào trên \ @Component decorator * hoặc * bạn có thể sử dụng \ @Input decorator trên thuộc tính đã đặt. Cả hai đều hoạt động và trình trang trí \ @Input dường như là cách ưa thích hiện tại –
Trình truy cập nhận được và không thể có giá trị, bạn có thể muốn cập nhật phương thức get của bạn thành 'get value() {}' . '@ output' của bạn cũng có thể cần được cập nhật thành' @Output() ' –