在我的应用程序中,我想根据状态(state1或state2)显示两个div属性。第一个div1包含一个按钮,单击该按钮将转换为状态2(消失div1,出现div2)。
<div id="state1" ng-show="firstMode"><button ng-click="goTo2()">Go</button></div>
<div id="state2" ng-hide="firstMode"><button ng-click="goTo2()">Go</button></div>
//控制器逻辑
$scope.firstMode = true
$scope.goTo2 = function() {
$scope.firstMode = false
}
在移动设备上查看时,两个div会在实际状态开始之前显示一秒钟的时间。单击按钮以转换到state2时也会发生同样的情况。加载视图时,基本上发生以下情况:
显示的div1和div2
显示div1,隐藏div2
单击按钮(以显示div2,隐藏div1)
显示的div1和div2
显示div2,隐藏div1
如何防止这种混乱的过渡和视图加载?
最佳答案
根据问题的描述,您可能已加载ngAnimate,并且样式表具有一些默认的CSS过渡。要验证,请尝试添加:
app.run(function($animate){
$animate.enabled(false);
})
运行功能。这将全局禁用动画。如果问题消失了,您可以删除并开始尝试找出“流氓” css过渡的位置。
关于javascript - ng-show和ng-hide在不到一秒钟的时间内都无法工作,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29243737/