cari

Rumah  >  Soal Jawab  >  teks badan

angular.js - 请教一个关于angularjs的小问题

我是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)
}
天蓬老师天蓬老师2744 hari yang lalu500

membalas semua(5)saya akan balas

  • 世界只因有你

    世界只因有你2017-05-15 17:11:02

    <!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>

    Anda perlu memanggil $scope.$apply();

    secara manual dalam fungsi panggil balik

    Atau gunakan $timeout
    http://www.cnblogs.com/ys-ys/...

    Semoga diterima pakai, terima kasih

    balas
    0
  • 某草草

    某草草2017-05-15 17:11:02

    Gunakan $timeout:

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

    Menukar pembolehubah terikat dalam $scope terus dalam setTimeout tidak akan mencetuskan semakan data kotor bagi pembolehubah tidak akan disegerakkan ke antara muka, jadi antara muka tidak akan membuat perubahan.

    balas
    0
  • PHPz

    PHPz2017-05-15 17:11:02

    Saya tidak pernah menggunakan setTimeout, tetapi menukar setTimeout kepada $timeout boleh mencapai kesan yang anda nyatakan

    balas
    0
  • PHP中文网

    PHP中文网2017-05-15 17:11:02

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

    app.controller('myinfoCtrl', ['$skop'],fungsi($skop) {

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

    }
    Menggunakan setTimeout tidak akan mencetuskan gelung $digest Anda disyorkan untuk menggunakan $timeout yang dibungkus dalam sudut

    balas
    0
  • 世界只因有你

    世界只因有你2017-05-15 17:11:02


    @ Meteor Stay Mengapakah ia melaporkan ralat?

    balas
    0
  • Batalbalas