【问题标题】:ng-show and ng-hide don't work for a fraction of a secondng-show 和 ng-hide 在几分之一秒内不起作用
【发布时间】:2015-03-24 22:02:18
【问题描述】:

在我的应用程序中,我希望根据状态(state1 或 state2)显示两个 div 属性。第一个 div1 包含一个按钮,单击该按钮时会转换到 state2(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 隐藏

如何防止这种混乱的视图转换和加载?

【问题讨论】:

  • 对于加载页面的初始闪烁,您应该查看ngCloak,如果它给您带来问题,请查看ngCloak issue and its fix
  • 太好了,明天试试。知道它是否也能解决第二个问题?
  • Ng-cloak 对我不起作用。另一方面,Ng-switch 确实...

标签: javascript html angularjs


【解决方案1】:

根据您对问题的描述,您可能已经加载了 ngAnimate,并且您的样式表有一些默认的 css 转换。要验证,请尝试添加:

app.run(function($animate){
    $animate.enabled(false);
})

到你的运行功能。这将全局禁用动画。如果问题消失了,您可以删除并开始尝试找出您的“流氓”css 转换在哪里。

【讨论】:

    猜你喜欢
    • 2015-06-29
    • 2016-10-18
    • 1970-01-01
    • 1970-01-01
    • 2018-08-01
    • 2018-02-27
    • 2015-02-12
    • 2014-12-08
    • 2014-03-27
    相关资源
    最近更新 更多