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
})