angular监听的方法:
第一种方法:angularjs的$watch
<div ng-controller="myCtrl"> <input type="text" ng-model="inputTxt"/> <p>{{inputTxt}}</p> </div> <script> var app = angular.module('myCtrl', ['ng']); app.controller('myCtrl', function ($scope) { console.log($scope.inputTxt); //监听模型数据的值的变化 $scope.$watch('inputTxt',function(nv,ov){//nv代表新的值,ov代表旧的值 if(nv){ console.log($scope.inputTxt) } }) }) </script>
使用angularjs内置的watch方法监听作用域$scope上的值 ,如果值发生变化就会监听到有新的值(也就是nv)
第二种方法:使用定时器$interval循环查找
这种方法适用于变量没有在scope作用域上,或者在scope作用域上,或者在scope作用域上,或者在scope上但是会出现“赋值延迟”的时候也可以使用。
比如:
//你将 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);
以上就是angular如何监听?的详细内容,更多请关注0133技术站其它相关文章!