【发布时间】:2018-01-04 11:55:42
【问题描述】:
我正在构建一个可重用的 vue-form-component。为了获得更大的灵活性,基本思想是不必事先在 vue-data-object 中指定表单信息,而是从 dom-input-elements 本身获取数据结构。
在创建实例时,从输入标签中读取“v-model”属性并通过vue.set() 应用到实例
这很好用:https://jsfiddle.net/seltsam23/hrL3ec3z/9/
但缺少一个细节:如果我同时使用多个表单组件,我只需要查询子输入字段,而不是站点范围的字段:
created() {
var inputs = document.querySelectorAll('input'); // works, but this returns ALL elements
var inputs = this.$el.querySelectorAll('input'); // Doesn't work because $el is only available after mounted().
...
}
mounted() {
var inputs = this.$el.querySelectorAll('input'); // works, but attribute "v-model" is removed from inputs at this point
...
}
我尝试在 created() 阶段创建 data-path 属性以将 v-model 值存储在元素本身上,但挂载后所有这些创建的属性都消失了。
任何想法如何以优雅的方式实现这一目标?
【问题讨论】:
-
@RoyJ 您能帮我了解如何使用这些主题中提供的信息解决我的问题吗?