3
我正在通过添加事件侦听器来侦听失去网络连接的应用程序。AngularJS - 显示/隐藏Rootcope的元素
当应用程序离线时,我需要显示一条消息。
以下代码似乎不适用于我。
我添加事件侦听器中运行的应用程序的方法,使其全球可用:
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>
当我离线时,我可以看到varibale正在更新但消息不显示。所以,如果我输出:
{{$root.offline}}
页面上,我可以看到它从假切换到真实正确,但仍然没有显示消息。
你能上标识的变化'NG-model'指令之间的差别阐述内完成,并这里需要'$ apply'吗?它也适用于我。我在'run'处理程序中设置了'$ rootScope。$ on',唯一可以让视图响应这个变化的方法就是使用这个。我通过调用'$ scope。$ emit' FYI来提出这个问题。 –
@MichaelPerrenoud [见此](http://www.sitepoint.com/understanding-angulars-apply-digest/)和[this](https://docs.angularjs.org/api/ng/type/$rootScope .Scope#$ digest)得到关于为什么[$ apply](https://docs.angularjs.org/api/ng/type/$rootScope.Scope#$apply)需要的基本想法 –
@MichaelPerrenoud不确定你可以用'$ on()'和'$ emit()'来解决问题,如果可能的话,尝试在[fiddle]中重新创建问题(http://jsfiddle.net/arunpjohny/ CNNRp /) –