2017-02-04 62 views
0

如果我的模型的propery發生更改,我需要每次調用JQuery函數。更改檢測角度2模型的屬性

person = {firstName:firstName, lastName:lastName} 

作爲一個例子。如果我改變的人對象的的firstName財產,我每次需要觸發的功能。其實我需要一個像這個對象的屬性訂閱的東西。

這怎麼可能?

在此先感謝。

+0

請看看我的回答,看它是否可以幫助你 –

回答

0

這聽起來像你正在尋找DoChecklink to docs)生命週期鉤。這是一個事件,將在每完成一輪變化檢測後觸發。請記住,它可能會被觸發很多,並且在該鉤子中執行大量操作可能會對性能產生重大負面影響。

下面是查找在person.firstName屬性更改一個例子,如果發現變化,它記錄到控制檯:

import { Component, DoCheck } from '@angular/core'; 

@Component({ 
    selector: 'app-root', 
    template: `<input type="text" [(ngModel)]="person.firstName">`, 
    styleUrls: ['./app.component.css'] 
}) 
export class AppComponent implements DoCheck { 
    person = { firstName: 'Donald', lastName: 'Duck' }; 
    oldFirstName: string; 

    ngDoCheck() { 
    if (this.person.firstName !== this.oldFirstName) { 
     console.log(`Change first name from "${this.oldFirstName}" to "${this.person.firstName}"`); 
     this.oldFirstName = this.person.firstName; 
    } 
    } 
}