一般修改的界面,会有很多信息项要填写,因为界面上有很多信息项,怕用户误操作,直接点击保存,导致错误,现在需要提供一个弹窗,将用户刚刚修改的信息项进行显示出来,以便提醒用户修改了哪些信息项,以下是思考过程:
一般监听对象属性的变化,在angularjs中可以使用watch来监听,如下格式:
$scope.$watch('addInfo.addInfoView',function(newValue,oldValue) { if(JSON.stringify(oldValue) == "{}") return; if (newValue === oldValue)return; if (newValue != null && newValue!=oldValue) { console.log("您修改了名字"); } },true); //其中true是可以进行对象属性的比较但是这个,我在正常切换用户,重新获取用户信息,填写上控件的信息,这个方法就一直在执行,不好判断是否是在点击保存之后用户修改了哪些信息,所以后来想想,是否可以将点击获取的旧的对象数据,和修改之后的新的对象数据进行比较,如下:
//拷贝一份,以便用于比较,是否修改了,2018年1月9日14:15:00 addInfo.addInfoViewcopy = angular.copy(json.content);2.然后在点击提交按钮的时候,对新的对象数据和旧的对象数据的属性一个个进行比较,判断修改了哪些属性,如下,至此就可以完成判断:
$scope.modifyRetireInfor=function(a){ console.log("新数据"+addInfo.addInfoView.name); console.log("旧数据"+addInfo.addInfoViewcopy.name); //对一些重要信息进行是否修改的判断,2018年1月9日14:44:48 if (addInfo.addInfoView != null ) { addInfo.addInfoView.errorMessage=""; if(addInfo.addInfoView.name != addInfo.addInfoViewcopy.name){ addInfo.addInfoView.errorMessage="名字"; } if(addInfo.addInfoView.identification != addInfo.addInfoViewcopy.identification){ addInfo.addInfoView.errorMessage +="、身份证"; } } $scope.resetModify(); }
原文地址:https://www.jb51.cc/angularjs/145298.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。