我有一个问题在angular.js的指令/类ng-斗篷或ng-show。

Chrome运行正常,但Firefox使用ng-cloak或ng-show导致元素闪烁。 恕我直言,这是由于将ng-cloak/ng-show转换为style="display: none;",可能Firefox javascript编译器有点慢,所以元素出现一段时间,然后隐藏?

例子:

<ul ng-show="foo != null" ng-cloak>..</ul>

当前回答

最好使用ng-if而不是ng-show。ng-if完全删除并重新创建DOM中的元素,并有助于避免ng-shows闪烁。

其他回答

不管怎样,我也遇到过类似的问题,斗篷不能用。也许有必要检查你的应用/站点是否启用了缓存来重用源文件,看看是否有帮助。

随着我与闪烁的磨合,我在DevTools打开和缓存禁用的情况下进行测试。离开面板关闭缓存启用固定我的问题。

我们在公司遇到了这个问题,并通过在CSS样式中为那些闪烁的ng-show元素添加“display: none”来解决它。我们根本不需要使用ng-cloak。不像这篇文章中的其他人,我们在Safari中遇到了这个问题,而不是Firefox或Chrome——可能是由于Safari在iOS7中的懒惰重绘错误。

避免断行

<meta http-equiv="Content-Security-Policy"              content="
default-src 'FOO';   
script-src 'FOO';    
style-src  'FOO'; 
font-src 'FOO';">

适用于Firefox 45.0.1

<meta http-equiv="Content-Security-Policy"              content="    default-src 'FOO';    script-src 'FOO';     style-src  'FOO';    font-src 'FOO';">

我个人决定使用ng-class属性而不是ng-show。我在这方面取得了很多成功,特别是在默认情况下总是不显示弹出窗口的情况下。

以前是什么<div class="options-modal" ng-show="showOptions"></div>

“股票期权”>

options-modal类的CSS显示:默认为none。show类包含了display:block CSS。

我会用<div ng-cloak>包裹<ul>