angularjs数据监听的两种方法

在angularjs中有时候路由跳转比值的传递或者赋值快一些,导致页面已经跳转了,而值还没有过来,进而会导致一些报错,所以就需要去监听某些关键的参数。

第一种方法:angularjs的$watch

{{inputTxt}}

使用angularjs内置的watch方法监听作用域$scope上的值 ,如果值发生变化就会监听到有新的值(也就是nv)

第二种方法:使用定时器$interval循环查找

这种方法适用于变量没有在 s c o p e 作 用 域 上 , 或 者 在 scope作用域上,或者在 scopescope上但是会出现“赋值延迟”的时候也可以使用。
比如:
//你将 sessionStorag[‘name’]赋值给$scope.input的时候

$scope.input = sessionStorag['name'];
当sessionStorag['name']从浏览器读取值比较慢的时候就会出现问题,
当sessionStorag['name']的值没有取到,它会把undefined赋值给$scope.input,
这个时候用$watch去监听,虽然有值,但是是undefined,没有什么意义,也影响下一步的操作。
如果用$interval去监听就可以完美解决这个问题,注意:监听完之后清理定时器,避免出现内存泄露或者溢出问题

var timer = $scope.$interval(function(){
	if(sessionStorag['name']){
		$scope.input = sessionStorag['name'];
		console.log($scope.input);
		$interval.cancel(timer);
	}
},500);

你可能感兴趣的:(Angularjs)