2016-08-23 25 views
6

Trong góc 1.x tôi có thể sử dụng. $ Xem để xem bất cứ điều gì tôi muốn, tuy nhiên trong Angular 2 chúng tôi có ngOnChanges. và trang trí đầu ra. Tuy nhiên theo thời gian tôi thực sự cần phải xem tài sản địa phương để tôi có thể phát ra một sự kiện khi họ thay đổi. Tôi nhớ đã thấy một bài báo giải thích cách bạn có thể nói với Angular 2 một cách rõ ràng để xem một thuộc tính nhưng đối với cuộc sống của tôi, tôi không thể tìm thấy bài báo nữa và mọi tìm kiếm tôi chỉ cho tôi biết sử dụng các trang trí đầu vào/đầu ra với onChanges. Làm cách nào để tạo trình theo dõi cho @ViewChild hoặc các thuộc tính cục bộ khác?Thuộc tính thành phần góc nhìn 2 cho các thay đổi không có @Input hoặc @Output

Ví dụ tôi có một ngForm, khi trạng thái xác thực của nó thay đổi từ hợp lệ thành không hợp lệ hoặc ngược lại, tôi muốn phát ra trạng thái cho thành phần khác để nó có thể phản ứng. Tuy nhiên kể từ khi ngForm của tôi là một @ViewChild và không phải là một @Input hoặc @Output ngOnChanges không phát hiện sự thay đổi.

Trả lời

11

Tương đương với tùy chỉnh Góc 1 $watch() trong Góc 2 là để thực hiện móc vòng đời ngDoCheck() và thực hiện kiểm tra của riêng bạn. Hướng dẫn dev về Vòng đời của Vòng đời có an example.

Lưu ý rằng phương pháp ngDoCheck() của bạn sẽ được gọi mỗi lần phát hiện thay đổi (giống như chiếc đồng hồ Angular 1), vì vậy hãy đảm bảo nó được triển khai hiệu quả nhất có thể.

Hãy thử sử dụng RxJS (một Quan sát, Chủ đề, v.v.) thay vào đó, nếu có thể, vì nó hiệu quả hơn. Chúng tôi used to be able to subscribe to the NgForm's ControlGroup to be notified of changes, nhưng tôi không biết nếu điều đó vẫn có sẵn.

+1

how about ngModelChange? – Toolkit

Các vấn đề liên quan