Rumah > Soal Jawab > teks badan
我是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)
}
世界只因有你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 balikAtau gunakan $timeout
http://www.cnblogs.com/ys-ys/...
Semoga diterima pakai, terima kasih
某草草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.
PHPz2017-05-15 17:11:02
Saya tidak pernah menggunakan setTimeout, tetapi menukar setTimeout kepada $timeout boleh mencapai kesan yang anda nyatakan
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