angular.js - 請教一個關於angularjs的小問題
天蓬老师
天蓬老师 2017-05-15 17:09:02
0
5
495

我是angularjs的一個新手,今天在專案中遇到這樣的一個問題
我想在1S種以後給p隱藏掉,但是一直沒效果,
求解,為什麼一直沒反應

<p ng-show="on">111</p>

app.controller('myinfoCtrl', ['$scope'],function($scope) {
    $scope.on=true;
    setTimeout(function(){
        console.log($scope.on)
        $scope.on=false;
        console.log($scope.on)
    },1000)
}
天蓬老师
天蓬老师

欢迎选择我的课程,让我们一起见证您的进步~~

全部回覆(5)
世界只因有你
<!DOCTYPE html>
<html ng-app="app">
<head>
    <title></title>
    <script type="text/javascript" src="angular.min.js"></script>
</head>
<body ng-controller="myinfoCtrl">

<p ng-show="on">111</p>

<script type="text/javascript">
    var app = angular.module('app', []);
    app.controller('myinfoCtrl', ['$scope',function($scope) {
        $scope.on=true;
        setTimeout(function(){
            console.log($scope.on)
            $scope.on=false;
            $scope.$apply();
            console.log($scope.on)
        },1000)
    }]);
</script>
</body>
</html>

在回呼函數裡需要手動呼叫$scope.$apply();

或使用$timeout
http://www.cnblogs.com/ys-ys/...

望採納,謝謝

某草草

用$timeout:

app.controller('myinfoCtrl', ['$scope','$timeout'],function($scope,$timeout) {
    $scope.on=true;
    $timeout(function(){
        $scope.on=false;
    },1000)
}

直接在setTimeout中改變$scope中綁定的變數不會觸發變數的髒資料檢查,變數變化不會被同步到介面,因此介面也不會做出變更。

PHPzhong

我沒用過setTimeout, 不過把setTimeout換成$timeout 可以實現你說的效果

洪涛

111

app.controller('myinfoCtrl', ['$scope'],function($scope) {

$scope.on=true;
setTimeout(function(){
    $scope.$apply(function(){
        $scope.on=false;
    });
},1000)

}
用setTimeout不會觸發$digest循環,建議用angular封裝好的$timeout吧

世界只因有你


@流星留步 為什麼會報錯?

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板