【问题标题】:VueJS-3 How to access raw text of a v-model expressionVueJS-3 如何访问 v-model 表达式的原始文本
【发布时间】:2022-06-21 00:06:40
【问题描述】:

例如,如果我的 HTML 标记显示 <input v-model=“foo.bar”>,我需要实际文本 foo.bar,而不是 foo.bar 解析到的对象。

在 Vue 2 中,我的组件能够使用 this.$vnode.data.model.expression

Vue 3 中的等价物是什么?

【问题讨论】:

  • binding.expression was removed 在 Vue 3 中来自自定义指令,很可能也来自内置指令。您应该开始考虑替代解决方案。你为什么需要那个?
  • 我的开源项目,Metawidget,基于顶层绑定动态生成子组件。所以我需要原始绑定文本(例如person),这样我就可以生成带有子绑定的子组件(例如person.firstnameperson.surname

标签: vuejs3


【解决方案1】:

它没有记录在案,有点像 hack,但我只是这样解决了它:

对于v-model="foo.bar"

在 vue2 中:node.$vnode.data.model.expression

在 vue3 中:node.$attrs['onUpdate:modelValue'].toString() 返回$event => ((_ctx.foo.bar) = $event),所以你可以从那里得到你的foo.bar

【讨论】:

    猜你喜欢
    • 2022-07-19
    • 2020-06-08
    • 2018-09-20
    • 1970-01-01
    • 2019-02-27
    • 2020-04-01
    • 2018-11-04
    • 2019-12-27
    • 1970-01-01
    相关资源
    最近更新 更多