Angular2中监听数据更新的方法


Posted in Javascript onAugust 31, 2018

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中监听数据更新的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
jQuery.Validate验证库的使用介绍
Apr 26 Javascript
extjs4 treepanel动态改变行高度示例
Dec 17 Javascript
2014年50个程序员最适用的免费JQuery插件
Dec 15 Javascript
jquery制作 随机弹跳的小球特效
Feb 01 Javascript
jQuery实现的多屏图像图层切换效果实例
May 07 Javascript
JavaScript实现弹出DIV层同时页面背景渐变成半透明效果
Mar 25 Javascript
jQuery Mobile 和 Kendo UI 的比较
May 05 Javascript
jsTree事件和交互以及插件plugins详解
Aug 29 Javascript
微信小程序云开发之使用云数据库
May 17 Javascript
json字符串对象转换代码实例
Sep 28 Javascript
vue.js自定义组件实现v-model双向数据绑定的示例代码
Jan 08 Javascript
JS Object构造函数之Object.freeze
Apr 28 Javascript
JavaScript使用prototype原型实现的封装继承多态示例
Aug 31 #Javascript
angular2组件中定时刷新并清除定时器的实例讲解
Aug 31 #Javascript
解决Angular4项目部署到服务器上刷新404的问题
Aug 31 #Javascript
Vue.directive使用注意(小结)
Aug 31 #Javascript
解决angular2 获取到的数据无法实时更新的问题
Aug 31 #Javascript
vue 项目中使用Loading组件的示例代码
Aug 31 #Javascript
解决Angular2 router.navigate刷新页面的问题
Aug 31 #Javascript
You might like
php循环创建目录示例分享(php创建多级目录)
2014/03/04 PHP
使用YUI+Ant 实现JS CSS压缩
2014/09/02 PHP
浅谈php提交form表单
2015/07/01 PHP
文件上传之SWFUpload插件(代码)
2015/07/30 PHP
带你了解PHP7 性能翻倍的关键
2015/11/19 PHP
jQuery 借助插件Lavalamp实现导航条动态美化效果
2013/09/27 Javascript
JS函数this的用法实例分析
2015/02/05 Javascript
分享一则JavaScript滚动条插件源码
2015/03/03 Javascript
BootStrap 实现各种样式的进度条效果
2016/12/07 Javascript
JS中parseInt()和map()用法分析
2016/12/16 Javascript
BootStrap Fileinput的使用教程
2016/12/30 Javascript
JavaScript实现水平进度条拖拽效果
2017/01/18 Javascript
jquery表单验证插件validation使用方法详解
2017/01/20 Javascript
vue-cli+axios实现文件上传下载功能(下载接收后台返回文件流)
2019/05/10 Javascript
vue 开发企业微信整合案例分析
2019/12/02 Javascript
js实现橱窗展示效果
2020/01/11 Javascript
jquery实现简易验证插件封装
2020/09/13 jQuery
React Native登录之指纹登录篇的示例代码
2020/11/03 Javascript
老生常谈Python基础之字符编码
2017/06/14 Python
用scikit-learn和pandas学习线性回归的方法
2019/06/21 Python
详解使用django-mama-cas快速搭建CAS服务的实现
2019/10/30 Python
python使用yield压平嵌套字典的超简单方法
2019/11/02 Python
Python实现从N个数中找到最大的K个数
2020/04/02 Python
python中使用asyncio实现异步IO实例分析
2021/02/26 Python
日本著名化妆品零售网站:Cosme Land
2019/03/01 全球购物
时尚圣经:The Fashion Bible
2019/03/03 全球购物
如何减少垃圾回收让内存更加有效使用
2013/10/18 面试题
医学护理系毕业生求职信
2013/10/01 职场文书
美术师范毕业生自荐信
2013/11/16 职场文书
母亲80寿诞答谢词
2014/01/16 职场文书
大班幼儿评语大全
2014/04/30 职场文书
营销部内勤岗位职责
2014/04/30 职场文书
乡镇精神文明建设汇报材料
2014/08/15 职场文书
九寨沟导游词
2015/02/02 职场文书
Go timer如何调度
2021/06/09 Golang
手把手教你导入Go语言第三方库
2021/08/04 Golang