2014-01-06 54 views
2

当通过IOS中的PhoneGap 2.7.0内的InAppBrowser访问使用AngularJS 1.2.0rc1构建的我的网站时,屏幕上的ng-show闪烁的内容。PhoneGap + Angular + IOS = ng-show在屏幕上闪烁显示内容

<form method="POST" action="" name="manualEntryForm" class="form-inline"> 
    <div ng-show="showErrors && !manualEntryForm.$valid" class="errorMsg ng-hide"> 
    One or more of the following fields are required: 
    <span ng-show="manualEntryForm.month.$error.required || manualEntryForm.day.$error.required || manualEntryForm.year.$error.required" class="ng-hide">Date needs to be present</span> 
    ... 
    </div> 
    ... 
</form> 

如果我默认showErrors虚假或更严格(showErrors === true)测试不要紧,错误内容块显示,也表明相关(Date needs to be present)实际的错误信息。

我很难以解决这个问题。我们是不是应该在ng-show中使用Angular Form Validation?为什么它只会导致IOS/Phonegap InAppBrowser出现问题?

回答

0

尝试使用ng-cloak编译过程中隐藏元素:

http://docs.angularjs.org/api/ng.directive:ngCloak

它可能展示了AngularJS编译器有时间来运行之前。它可能只会在iOS/Phonegap中显示,因为UIWebView中的webkit浏览器远不及Mobile Safari快,更不用说桌面浏览器了。

-1

作为一种解决方法,我最终删除了ng-show,而是添加了一个ng-class =“{hidden:myCondition}”,然后定义了.hidden {display:none; }在CSS中。这消除了闪烁。

3

我有同样的问题。 NG-斗篷并没有解决问题,所以解决了什么问题,我是

class="ng-hide" 

添加与NG-show属性的每个元素,现在它不闪iOS上的内容。