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)}
问题解答
回答1:
<!DOCTYPE html><html ng-app='app'><head> <title></title> <script type='text/javascript' src='x.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>
在回调函数里需要手动调用$scope.$apply();
或者使用$timeouthttp://www.haobala.com/...
望采纳,谢谢
回答2:
用$timeout:
app.controller(’myinfoCtrl’, [’$scope’,’$timeout’],function($scope,$timeout) { $scope.on=true; $timeout(function(){$scope.on=false; },1000)}
直接在setTimeout中改变$scope中绑定的变量不会触发变量的脏数据检查,变量变化不会被同步到界面,因此界面也不会做出更改。
回答3:
我没用过setTimeout, 不过把setTimeout换成$timeout 可以实现你说的效果
回答4:
<p ng-show='on'>111</p>
app.controller(’myinfoCtrl’, [’$scope’],function($scope) {
$scope.on=true;setTimeout(function(){ $scope.$apply(function(){$scope.on=false; });},1000)
}用setTimeout不会触发$digest循环,建议用angular封装好的$timeout吧
回答5:


@流星留步 为什么会报错?
相关文章:
1. javascript - gulp-nodemon 使用重启express 服务器的时候端口被占用2. android-studio - android studio自带模拟器中的本地“图库”所对应的路径是什么?3. node.js - yo webapp构建项目时报错了,如图4. 求救一下,用新版的phpstudy,数据库过段时间会消失是什么情况?5. java - 微信开发遇到一个 bug。。access_token 有关的6. 【python小白】 问关于之初始化一次对象的问题7. thinkphp中Controller里面使用Request::File(’image’);8. MYSQL5.7以及postgresql,他们的JSON模式下的查询和存储性能如何!9. html5 - 目前 公司App 嵌入H5页面 做个 手机支付功能 没有做过 所以 请求各位有经验的 给个思路10. python 多进程如何调试

网公网安备