angular.js - 请教一个关于angularjs的小问题
天蓬老师
天蓬老师 2017-05-15 17:09:02
0
5
515

我是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 可以实现你说的效果

洪涛

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

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

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

}
用setTimeout不会触发$digest循环,建议用angular封装好的$timeout吧

世界只因有你


@流星留步 为什么会报错?

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板