【问题标题】:How can I load an OpenSeadragon component in my Vue Component如何在我的 Vue 组件中加载 OpenSeadragon 组件
【发布时间】:2018-10-04 17:34:30
【问题描述】:

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

但是如何在我的 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: Cannot read property 'appendChild' of null”

【问题讨论】:

  • 你有什么错误吗?不行怎么办?
  • 我已经用我得到的错误更新了我的问题
  • @3142maple 谢谢!当我将此代码放入mounted()中时,它可以工作!谢谢!

标签: javascript vue.js vue-router openseadragon


【解决方案1】:

根据Vue Lifecycle,你应该把你的函数调用放在mounted

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-07-14
    • 2018-01-09
    • 2017-09-04
    • 1970-01-01
    • 2018-02-22
    • 2020-03-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多