angularJS $scope的$apply方法实现model刷新

  控制器内,$scope有个$apply方法,可以代码更改model并同步更新页面。通常,控制器内的方法执行完毕后仅会自动刷新一次页面展示,使用$apply方法即可在想刷新页面时就刷新。如本例,这个方法接收function类型的参数。

<!DOCTYPE html>  
<html lang="en">  
<head>  
    <meta charset="UTF-8">  
    <title>Title</title>  
    <script src="http://cdn.static.runoob.com/libs/angular.js/1.4.6/angular.min.js"></script>  
</head>  
<body>  
<div ng-app="myApp">  
    <div ng-controller="firstController">  
        {{ date }}  
        <br><br>  
        {{ count }}  
    </div>  
</div>  
<script>  
    //用 $scope的$apply方法实现每秒自动刷新model  
    angular.module('myApp',[])  
            .controller('firstController',function($scope){  
                $scope.date=new Date();  
                $scope.count=0;  
  
                setInterval(function(){  
                    $scope.$apply(function(){  
                        $scope.date=new Date();  
                        $scope.count++;  
                    });  
                },1000);  
  
            });  
  
</script>  
</body>  
</html>

第二种

var myApp = angular.module("myApp",[]);  
myApp.controller("mainController", function ($scope) {  
    $.get("/articlelist",{},function(data){  
        $scope.data=data;  
    });  
    $scope.updatedate = function(id,age){  
    $.get("/update",{id:id,age:age},function(data){  
        item.age=age;//这里你会发现值变了,但页面没刷新  
        $scope.$apply();//需要手动刷新  
        console.log(item);  
    });  
    }  
});  

  

posted on 2017-09-13 16:31  水行者  阅读(488)  评论(0编辑  收藏  举报

导航