如果我的模型的 propery 发生了变化,我每次都需要调用一个JQuery函数。
person = {firstName:firstName, lastName:lastName}
作为示例如果我更改了person对象的 firstName 属性,每次我需要触发一个函数。实际上我需要订阅这个对象的属性。
怎么可能?
提前谢谢。答案 0 :(得分:0)
听起来你正在寻找DoCheck
(link 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;
}
}
}