Angularjs ng show在safari中以角度1.3.6闪烁
我用Ionic框架开发了一个移动web应用程序 当我在angular 1.3.0中使用ionic beta-13时,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}} 弗斯特 隐藏
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
符号来引用父范围