【问题标题】:Wrap text in a Vue component dynamically在 Vue 组件中动态包装文本
【发布时间】:2020-10-05 07:37:27
【问题描述】:

问题

我想在 Vue 组件中动态包装一些纯文本,在选择文本后使用 mouseUp。

例如:<div> Hello World! </div> => <div> <Greeting/> World! </div>

近似解

现在,我使用 document.createElement("span") 将其包裹起来,并用它包围选择的范围。

我发现了与下一个类似的问题,但我试图避免渲染级别:

How can I dynamically wrap a substring with a component in Vue.js?

【问题讨论】:

    标签: javascript html vue.js frontend


    【解决方案1】:

    好吧,我终于设法解决了。 (提交之前,我花了很多时间弄清楚。我不知道我是怎么解决的这么快)

    解决方案

     var ComponentClass = Vue.extend(Annotation);
                var instance = new ComponentClass();
                instance.$mount();
                this.range.deleteContents();
                this.range.insertNode(instance.$el);
    

    其中:Annotation是一个Vue组件,Range是之前得到的选择范围。

    我希望这对其他人有帮助!

    【讨论】:

    • 好吧,如果你解决了,你还不如接受你自己的答案。
    • @Ken Kinder 我得等到明天哈哈
    猜你喜欢
    • 2018-03-07
    • 1970-01-01
    • 2020-07-02
    • 2021-07-09
    • 2020-12-21
    • 2019-05-01
    • 2023-01-10
    • 2019-05-18
    • 2021-01-17
    相关资源
    最近更新 更多