原文出处:https://blog.youkuaiyun.com/cut001/article/details/70885762 (原文更易阅读)
angular2 模型数据更新了,需要监听数据改变,
一、实现接口Docheck,检测页面上所有元素数据更
-
import { Component, DoCheck } from "@angular/core"; -
export class LangListUserComponent implements DoCheck {
-
constructor(private differs: KeyValueDiffers) { -
}
-
ngOnInit() { -
this.objDiffer = {}; -
this.list.forEach((elt) => { -
this.objDiffer[elt] = this.differs.find(elt).create(null); -
}); -
}
-
ngDoCheck() { -
this.list.forEach(elt => { -
var objDiffer = this.objDiffer[elt]; -
var objChanges = objDiffer.diff(elt); -
if (objChanges) { -
objChanges.forEachChangedItem((elt) => { -
if (elt.key === 'prop1') { -
this.doSomethingIfProp1Change(); -
} -
}); -
} -
}); -
}
二、针对页面上某个元素的数据更新做处理
1、定义模板驱动表单名
<input type="text" pInputText size="50" [formControl]="term" placeholder="输入搜索条件">
2、ts 文件中新建一个表单元素对象。
colo = new FormControl();
3、ngonInit中订阅数据更新
this.colo.valueChanges.distinctUntilChanged().subscribe((ast) => {
//do something
})

本文介绍如何在Angular2中使用DoCheck接口监测组件数据变化,包括实现数据对比和响应式表单更新的方法。

3913

被折叠的 条评论
为什么被折叠?



