天天看點

C1——元件初始化時報錯cesium未定義

問題:【這裡cesium已經引入了】,适合的場景是vue的元件created等方法裡面調用初始化事件,但報錯說cesium未定義的情況。

思路:created裡調用初始化init方法;init方法裡判斷cesium不存在的話延遲回調自身。

代碼如下:

created() {
    this.init();
},
methods: {
    init(){
        let _this = this;
        let viewer = this.$globe.viewer;
        if (viewer) {
            if (this.timerInit) {
                clearTimeout(this.timerInit);
                console.log("銷毀定時器 timerInit ");
            }
            window.handlerQueryProperties = new Cesium.ScreenSpaceEventHandler(viewer.scene.canvas);
        } else {
            this.timerInit = setTimeout(() => {
                _this.init();
            }, 1000);
        }
    },
}
           

注意:定時器應該及時銷毀!