1

我必须在我的 Vue 组件中使用一个名为“”的外部 javascript 库OpenSeadragon

但是如何在我的 Vue 组件中加载这个组件呢?在我的父模板中,我加载库:

<script src="{{ asset('js/openseadragon.min.js') }}"></script>

这是我的Vue 测试组件

<template>
    <div>
        <div id="openseadragon" style="width: 100%; height: 600px; border: 1px solid red"></div>
    </div>
</template>

<script>

    export default {
        data(){
            return {

            }
        },
        created() {

           // How can I load openseadragon??
            OpenSeadragon({
                id:              "openseadragon",
                prefixUrl:       "/openseadragon/images/",
                tileSources:     "/example-images/duomo/duomo.dzi"
            });


        },
        methods: {
            //
        }
    }
</script>

然后我得到这个错误:

[Vue 警告]:创建钩子时出错:“TypeError:无法读取属性‘appendChild’ of null”

4

1 回答 1

3

根据Vue Lifecycle,您应该将函数调用放入mounted.

因为该元素在被调用#openseadragon之前不存在。mounted

于 2018-04-24T12:54:08.063 回答