3

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

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

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

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

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,但仍然没有显示消息。

4

1 回答 1

8

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

document.addEventListener("offline", function() {
    $rootScope.$apply(function(){
        $rootScope.offline = true;
    })
}, false);
于 2013-10-16T06:37:40.543 回答