Angular2中監(jiān)聽(tīng)數(shù)據(jù)更新的方法
angular2 模型數(shù)據(jù)更新了,需要監(jiān)聽(tīng)數(shù)據(jù)改變,
一、實(shí)現(xiàn)接口Docheck,檢測(cè)頁(yè)面上所有元素?cái)?shù)據(jù)更新
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();
}
});
}
});
}
二、針對(duì)頁(yè)面上某個(gè)元素的數(shù)據(jù)更新做處理
1、定義模板驅(qū)動(dòng)表單名
<input type="text" pInputText size="50" [formControl]="term" placeholder="輸入搜索條件">
2、ts 文件中新建一個(gè)表單元素對(duì)象。
colo = new FormControl();
3、ngonInit中訂閱數(shù)據(jù)更新
this.colo.valueChanges.distinctUntilChanged().subscribe((ast) => {
//do something
})
以上這篇Angular2中監(jiān)聽(tīng)數(shù)據(jù)更新的方法就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
AngularJS入門(mén)之動(dòng)畫(huà)
AngularJS中ngAnimate模塊支持動(dòng)畫(huà)效果,但是ngAnimate模塊并未包含在AngularJS核心庫(kù)中,因此需要使用ngAnimate需要在定義Module時(shí)聲明對(duì)其的引用。下面通過(guò)本文我們來(lái)看看AngularJS動(dòng)畫(huà)的詳細(xì)介紹。2016-07-07
深入理解angular2啟動(dòng)項(xiàng)目步驟
本篇文章主要介紹了深入理解angular2啟動(dòng)步驟 ,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-07-07
AngularJS入門(mén)教程中SQL實(shí)例詳解
本文主要介紹 AngularJS SQL,這里給大家整理了相關(guān)資料,并提供了實(shí)例代碼,有需要的小伙伴可以參考下2016-07-07
Angular6實(shí)現(xiàn)拖拽功能指令drag實(shí)例詳解
這篇文章主要為大家介紹了Angular6實(shí)現(xiàn)拖拽功能指令drag實(shí)例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-11-11
在AngularJS中如何使用谷歌地圖把當(dāng)前位置顯示出來(lái)
這篇文章給的大家介紹在AngularJS中如何使用谷歌地圖把當(dāng)前位置顯示出來(lái),本文介紹的非常詳細(xì),具有參考借鑒價(jià)值,對(duì)angularjs 谷歌地圖相關(guān)知識(shí)感興趣的朋友一起學(xué)習(xí)吧2016-01-01
Angularjs驗(yàn)證用戶(hù)輸入的字符串是否為日期時(shí)間
這篇文章主要介紹了Angularjs驗(yàn)證用戶(hù)輸入的字符串是否為日期時(shí)間,需要的朋友可以參考下2017-06-06

