我知道如何在jquery中检查设备就绪。但是使用jquery和angular是不好的做法。所以,我打算不在角度中使用jquery。
我想测试设备就绪事件。在jquery下面的代码可以工作:
<script type="text/javascript">
document.addEventListener("deviceready", onDeviceReady, false);
function onDeviceReady() {
var deviceID = device.uuid;
$(document).ready(function() {
document.addEventListener("offline", onOffline, false);
});
function onOffline() {
location.href = "no_network.html";
}
}
</script>
我怎样才能在angularjs中做同样的事情?
请告知。
答案 0 :(得分:1)
只需在服务构造函数或引导例程中添加事件侦听器即可。
坚持使用您的示例,管理应用程序网络状态的服务在Typescript中可能如下所示:
class NetworkStatusService {
deviceIsOnline: boolean;
constructor() {
document.addEventListener("deviceready", () => {
if (navigator.connection.type === Connection.NONE) {
this.deviceIsOnline = false;
} else {
this.deviceIsOnline = true;
}
});
document.addEventListener("offline", () => {
this.deviceIsOnline = false;
});
document.addEventListener("online", () => {
this.deviceIsOnline = true;
});
}
}
为方便起见添加相应的Javascript代码段;)
var NetworkStatusService = (function () {
function NetworkStatusService() {
var _this = this;
document.addEventListener("deviceready", function () {
if (navigator.connection.type === Connection.NONE) {
_this.deviceIsOnline = false;
}
else {
_this.deviceIsOnline = true;
}
});
document.addEventListener("offline", function () {
_this.deviceIsOnline = false;
});
document.addEventListener("online", function () {
_this.deviceIsOnline = true;
});
}
return NetworkStatusService;
}());