angularjs& cordova-设备准备好了

时间:2017-02-08 18:06:41

标签: jquery angularjs cordova

我知道如何在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中做同样的事情?

请告知。

1 个答案:

答案 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;
}());