【发布时间】:2014-07-16 10:17:57
【问题描述】:
我有一个 Angular/Ionic 应用程序,它使用 Network Phonegap API 检查网络连接。我已经定义了事件处理程序来处理在线/离线事件。当这些事件发生时,我通过$rootScope$broadcast方法广播事件。在我的控制器中,我使用$on 方法侦听此事件并更新范围属性。 scope 属性绑定到视图以在没有 Internet 连接时禁用按钮。问题是即使触发了离线/在线事件(在我的三星 S3 上测试),也没有设置范围属性。
为了清楚起见,我的代码:
document.addEventListener("offline", function() {
//broadcast offline event to controllers
$rootScope.$broadcast("networkStatusChange", 'Offline');
}, false);
document.addEventListener("online", function() {
$rootScope.$broadcast("networkStatusChange", 'Online');
}, false);
我的控制器
$scope.$on('networkStatusChange', function(event, status) {
$scope.networkInfo.isOffline = status === 'Offline' ? true : false;
});
$scope.networkInfo = {}; //bound to view to disable button is isOffline is true
我的观点
<p class="error" ng-show="networkInfo.isOffline">No Internet Connection.</p>
我不知道为什么当我打开/关闭手机的互联网连接时networkInfo.isOffline 属性没有改变。
【问题讨论】: