2016-09-05 23 views
11
phần

Child:Angular2 Gọi Function Khi Input Thay đổi

export class Child { 
    @Input() public value: string; 
    public childFunction(){...} 
} 

thành phần phụ huynh:

export class Parent { 
    public value2: string; 
    function1(){ value2 = "a" } 
    function2(){ value2 = "b" } 
} 

xem phụ huynh:

<child [value]="value2"> 

Có cách nào để gọi childFunction() mỗi thời gian giá trị 2 được thay đổi trong cấu trúc này?

Trả lời

19

Bạn có thể sử dụng ngOnChanges()lifecycle hook

export class Child { 
    @Input() public value: string; 

    ngOnChanges(changes) { 
     this.childFunction() 
    } 
    public childFunction(){...} 
} 

hoặc sử dụng một setter

export class Child { 
    @Input() 
    public set value(val: string) { 
     this._value = val; 
     this.childFunction(); 
    } 
    public childFunction(){...} 
} 
+1

Trong phương pháp đầu tiên, chúng ta có thể xác định biến được thay đổi? –

+1

Tham số 'changes' chứa một mục nhập cho mỗi đầu vào đã thay đổi. Xem liên kết "móc vòng đời" ở trên để biết thêm chi tiết. –

+2

Nó hoạt động tốt, cảm ơn bạn rất nhiều! –

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