angulaire.js - Posez une petite question sur AngularJS
天蓬老师
天蓬老师 2017-05-15 17:09:02
0
5
514

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)
}
天蓬老师
天蓬老师

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

répondre à tous(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>

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

某草草

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.

PHPzhong

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

洪涛

<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

.
世界只因有你


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

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal