Angularjs ng show在safari中以角度1.3.6闪烁

Angularjs ng show在safari中以角度1.3.6闪烁,angularjs,safari,ionic,angularjs-ng-show,Angularjs,Safari,Ionic,Angularjs Ng Show,我用Ionic框架开发了一个移动web应用程序 当我在angular 1.3.0中使用ionic beta-13时,ng show运行良好。但在使用angular 1.3.6更新到ionic beta-14之后,在Safari浏览器上,当我在视图之间导航时,该元素开始闪烁。它在铬上工作良好 UDPDATE 我对我的问题做了一个版本。Safari中选项卡之间的转换是跳跃式的(因为隐藏的文本),而Chrome中的转换是按预期进行的 JS: HTML: 副菜单 菜单 {{Tabs}} 弗斯特 隐藏

我用Ionic框架开发了一个移动web应用程序

当我在angular 1.3.0中使用ionic beta-13时,
ng show
运行良好。但在使用angular 1.3.6更新到ionic beta-14之后,在Safari浏览器上,当我在视图之间导航时,该元素开始闪烁。它在铬上工作良好

UDPDATE

我对我的问题做了一个版本。Safari中选项卡之间的转换是跳跃式的(因为隐藏的文本),而Chrome中的转换是按预期进行的

JS:

HTML:


副菜单
菜单
{{Tabs}}

弗斯特
隐藏文本1
未隐藏的文本1
第二
隐藏文本二
未隐藏的文本二

初始化代码时,
ng show
表达式
可能检测多次,例如,从
未定义

我猜可能是因为这个原因,因为
ng show
元素内部会渲染时间


您可以检查代码,尝试给出表达式来设置初始值,或者将
动画
添加到
ng show
ng show
指令更改为
ng if=“false”
,这样不会显示闪烁的外观

first.html

<ion-content class="has-header has-subheader" >
    <div ng-if="false">
        Hidden text 1
    </div>
    unhidden text 1
</ion-content>
<ion-content class="has-header has-subheader" >
    <div ng-if="false">
        Hidden text two
    </div>
    unhidden text two
</ion-content>

隐藏文本1
未隐藏的文本1
second.html

<ion-content class="has-header has-subheader" >
    <div ng-if="false">
        Hidden text 1
    </div>
    unhidden text 1
</ion-content>
<ion-content class="has-header has-subheader" >
    <div ng-if="false">
        Hidden text two
    </div>
    unhidden text two
</ion-content>

隐藏文本二
未隐藏的文本二

我对safari也有类似的问题

我在CSS中使用了ng class=“{hidden:myCondition}”和.hidden{display:none;}来代替ngShow


它似乎解决了问题。

你能添加一个复制问题的plunkr/fiddle吗谢谢你的帮助,为我的问题做了一个代码笔你忘了在代码笔中添加html抱歉我错误地删除了它,现在很好我的表达式设置为false,但仍然闪烁是的,它正在工作。但我想知道是什么破坏了以前的代码。也许这是一个性能问题,我应该使用ng if。但是有时候ng show更合适。@leonprou使用
ng if
不会影响性能。但是我也真的不知道为什么safari会这样做。使用
ng if
的缺点是,它会在应用的元素内创建子范围,可能会导致您使用
$parent
符号来引用父范围