ionic ng-show 在浏览器中工作,但不在 android/ios 上

Posted

技术标签:

【中文标题】ionic ng-show 在浏览器中工作,但不在 android/ios 上【英文标题】:ionic ng-show working in browser but not on android/ios 【发布时间】:2015-04-24 12:54:33 【问题描述】:

我遇到了一个我无法解决的烦人问题,此代码在浏览器中完美运行,但在 android/ios 设备上却不行:

<ion-view style="" title="Dettaglio">
<ion-content class="has-header" padding="true">
    <div style="" class="list card">
        <div class="item item-divider" ng-show="conditions">conditions.nome conditions.cognome</div>
        <div class="item item-divider" ng-hide="conditions">Errore!!</div>
        <div class="item item-body">
            <div style="" ng-show="conditions">
                <p>
                   Residuo: conditions.residuo
                </p>
            </div>
            <div style="" ng-hide="conditions">
                <p>
                   Utente non registrato o codice fiscale errato
                </p>
            </div>
        </div>
    </div>
    <div style="display: inline-block; width: 300px; height: 17px;" class="spacer"></div>
    <div style="" class="list card" ng-show="conditions">
        <div class="item item-divider">Note</div>
        <div class="item item-body">
            <div style="">
                <p>
                    conditions.note
                </p>
            </div>
        </div>
    </div>
</ion-content>

在 Windows 浏览器中测试应用程序时,ng-hide/ng-show 会按预期工作隐藏或显示 div,但是一旦我在 android/ios 设备上获取应用程序,无论如何都会显示每个 div。 我对角度/离子有点陌生,但我不明白为什么 ng-show 指令在浏览器中有效,但在设备上无效。

提前致谢

【问题讨论】:

您确定要在您的应用中打包所有依赖项,即角度、离子等吗? 【参考方案1】:

我在浏览器和我的 Android 手机上都遇到了这个问题。这是由 Cordova 的安全性最近升级以及需要更好的“内容安全策略”引起的。

我通过在 index.html 中添加这一行来修复它:

<meta http-equiv="Content-Security-Policy" content="default-src...

我添加了:

'unsafe-inline' 'unsafe-eval'

【讨论】:

【参考方案2】:

我也遇到过类似的问题。

我通过检查 Safari DevTools(针对 iOS 模拟器运行)中 [ng-hide=""] 元素的计算样式来解决我的问题,发现 .ng-hide display: none!important 规则没有被创建。

我的解决方法是将该规则添加到我自己的样式表中。

【讨论】:

以上是关于ionic ng-show 在浏览器中工作,但不在 android/ios 上的主要内容,如果未能解决你的问题,请参考以下文章

带有 Angular 和 Express 的 CORS - 在 Postman 中工作,但不在浏览器中

Ionic - $http 在移动设备中工作,但在浏览器中显示 CORS 和预检错误

获取在 HTML 页面中工作但不在 JS 中工作 [重复]

请求在CURL中工作但不在Ajax中工作

Android Geolocation在模拟器中工作但不在手机中工作

让请求在 curl 中工作,但不在 Python 中