javascript - AngularJS - 显示/隐藏根作用域中的元素

标签 javascript jquery angularjs show show-hide

我正在通过添加事件监听器来监听失去网络连接的应用程序。

当应用程序离线时,我需要显示一条消息。

下面的代码似乎对我不起作用。

我在应用程序运行方法中添加事件监听器,以便它全局可用:

document.addEventListener("offline", function() {
    $rootScope.offline = true;
}, false);

然后在我的 index.html 中,我显示隐藏基于 $rootScope 变量的消息:

<div id="network-msg" ng-show="$root.offline">
    <div class="full-overlay" ng-show="$root.offline">
        <p class="txt-center">No internet connection</p>
        <p class="txt-center">Trying to re-connect</p>
    </div>
</div>

当我离线时,我可以看到变量正在更新,但消息没有显示。所以如果我输出:

{{$root.offline}}

在页面上我可以看到它正确地从 false 切换到 true 但仍然没有显示消息。

最佳答案

由于值是在 dom 事件处理程序中更新的,因此必须在 $apply 中完成更改回调

document.addEventListener("offline", function() {
    $rootScope.$apply(function(){
        $rootScope.offline = true;
    })
}, false);

关于javascript - AngularJS - 显示/隐藏根作用域中的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19396705/

相关文章:

javascript - Firestore - 如何在我的状态下添加文档 ID 及其数据?

javascript - 如何使用 html5 canvas 绘制边框为 1px 的矩形?

javascript - "vue.config.js"文件在哪里?

angularjs - 使用Grails和Spring Security进行后端时的 Angular 前端身份验证

javascript - jQuery : swap two value and change style

jquery - 砖石无法填补我网格中的空白

javascript - css 图像翻转(连续 4 张图片)

php - 如何动态更改(添加)事件状态类到导航链接

javascript - Cordova 'deviceready' 事件未从 Angular .run block 内触发

javascript - AngularJs 指令 : nested ng-class is failing