recherche

Maison  >  Questions et réponses  >  le corps du texte

angulaire.js - Posez une petite question sur AngularJS

Je suis un débutant dans Angularjs. J'ai rencontré un tel problème dans le projet aujourd'hui
Je veux masquer p après 1S, mais cela n'a aucun effet
S'il vous plaît, dites-moi pourquoi il n'y a pas de réponse

.
<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)
}
天蓬老师天蓬老师2865 Il y a quelques jours540

répondre à tous(5)je répondrai

  • 世界只因有你

    世界只因有你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>

    Vous devez appeler manuellement $scope.$apply();

    dans la fonction de rappel

    Ou utilisez $timeout
    http://www.cnblogs.com/ys-ys/...

    J'espère l'adopter, merci

    répondre
    0
  • 某草草

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

    Utilisez $timeout :

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

    La modification des variables liées dans $scope directement dans setTimeout ne déclenchera pas la vérification des données sales des variables. Les modifications des variables ne seront pas synchronisées avec l'interface, donc l'interface n'effectuera pas de modifications.

    répondre
    0
  • PHPz

    PHPz2017-05-15 17:11:02

    Je n'ai jamais utilisé setTimeout, mais changer setTimeout en $timeout peut obtenir l'effet que vous avez mentionné

    répondre
    0
  • PHP中文网

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

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

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

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

    }
    L'utilisation de setTimeout ne déclenchera pas la boucle $digest. Il est recommandé d'utiliser le $timeout fourni dans angulaire

    .

    répondre
    0
  • 世界只因有你

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


    @ Meteor Stay Pourquoi signale-t-il une erreur ?

    répondre
    0
  • Annulerrépondre