Maison > Questions et réponses > le corps du texte
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)
}
世界只因有你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 rappelOu utilisez $timeout
http://www.cnblogs.com/ys-ys/...
J'espère l'adopter, merci
某草草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.
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é
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