1

prosemirror 的令人敬畏的tiptap 包装器附带了很好的文档,但它缺乏一些说明如何在开发自定义扩展时处理一些(我认为)基本场景。

我的问题是在 vue 组件的上下文中如何在节点上调用 toggleWrap。我找到了使用事务并允许删除的示例-但我想要的是清除节点,使节点的文本保持不变。

get view() {
        return {
        directives: {
        "click-outside": clickOutside
      },
       props: ['node', 'updateAttrs', 'view', 'selected', 'getPos'],
       data() {
        return {
            showMenu: false
        }
       },
       computed: {
        href: {
            get() {
                return this.node.attrs.href
            },
            set(href) {
                this.updateAttrs({
                    href,
                })
            },
        },
        },
        methods: {
            // deleteNode() { 
            //  let transaction = this.view.state.tr // tr - transaction
            //  let pos = this.getPos() 
            //  transaction.delete(pos, pos + this.node.nodeSize) 
            //  this.view.dispatch(transaction)
            // },
            stopLinkPropagation(){
                return null;
            },
            hideMenu(){
                this.showMenu = false
            }
        },
        template: `<div @click="showMenu = true" v-click-outside="hideMenu">
            <a class="email-button" @click.prevent="stopLinkPropagation" :href="href" v-text="node.textContent"></a>
            <input class="iframe__input" type="text" v-model="href" v-if="showMenu" />
            <button @click="clearNode">clear button wrap</button>
            </div>`,
        }
    }

任何帮助都是极好的。谢谢。

4

0 回答 0