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 /) –