AngularJS实现⼀次监听多个值发⽣的变化
⼀、$watch简单使⽤
$watch是⼀个scope函数,⽤于监听模型变化,当你的模型部分发⽣变化时它会通知你。
$watch(watchExpression, listener, objectEquality);
每个参数的说明如下:
watchExpression:监听的对象,它可以是⼀个angular表达式如'name',或函数如function(){return $scope.name} 。
listener:当watchExpression变化时会被调⽤的函数或者表达式,它接收3个参数:newValue(新值), oldValue(旧值), scope(作⽤域的引⽤)
objectEquality:是否深度监听,如果设置为true,它告诉Angular检查所监控的对象中每⼀个属性的变化. 如果你希望监控数组的个别元素或者对象的属性⽽不是⼀个普通的值, 那么你应该使⽤它
举个栗⼦:
$scope.name = 'hello';
var watch = $scope.$watch('name',function(newValue,oldValue, scope){
console.log(newValue);
console.log(oldValue);
angular和angularjs});
$timeout(function(){
$scope.name = "world";
},1000);
⼆、监听多个值的变化
⼤家通常遇到的情况为通过$watch()⼀次监听⼀个值的变化,当然这种时候满⾜绝⼤部分情况。但是通过阅读官⽹对
于$watch()的解释,$watch()还有第三个参数,第三个参数是⼀个布尔类型,表⽰是否深度监听,深度监听的例⼦就是是否进⾏⽐较对象的属性。
这样我们就可以实现⼀次监听多个值的变化。
⽰例代码
var dule("watchApp",[])
.controller("watchController",["$scope",function($scope){
$scope.object={};
$=$;
$=$;
$scope.$watch("object",function(){
.....
},true);
}])
总结
以上就是关于AngularJS如何⼀次监听多个值发⽣变化的全部内容,⼤家都学会了吗?希望这篇⽂章的内容对⼤家的学习和⼯作能有所帮助,如果有疑问可以留⾔交流,谢谢⼤家对的⽀持。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论