当前位置: 首页 > 知识库问答 >
问题:

javascript - v-model怎么动态绑定Vue.data的属性?

包建义
2024-07-08
new Vue({
        el: '#app',
        data: function () {
            return {
                  normal1: 1,
                  normal2: 1,
                  normal3: 1,
                  normal4: 1,
                  // normal是不确定有几个
             }
         }
});

FXJXM的数量跟normal的数量是一样的。请问v-for渲染el-radio-group的时候,v-model怎么绑定

               <div class="body-item" v-for="(FXJXM, index) in FXJXMS" >
                    <div class="title">
                        <div class="value">{{FXJXM.FDATAVALUE}}</div>
                        <div class="desc">{{FXJXM.FInspectionStandard}}</div>
                    </div>
                    <div class="buttom">
                        <el-radio-group v-model="" class="radio-group">
                            <el-radio :label="1">正常</el-radio>
                            <el-radio :label="2">异常</el-radio>
                        </el-radio-group>
                        <el-upload class="upload" action="https://jsonplaceholder.typicode.com/posts/" :on-change="handleChange" :file-list="fileList">
                            <el-button size="small" type="primary" class="el-icon-picture">拍照</el-button>
                        </el-upload>
                    </div>
                </div>

共有2个答案

公良文彬
2024-07-08

最简单的方式可以这样:

<template>
  <div>
    <div v-for="(_, index) in 4">
      <el-divider content-position="left">Form-{{index}}</el-divider>
      <el-radio-group v-model="formData[`radio${index}`]">
        <el-radio value="1" size="large">Option 1</el-radio>
        <el-radio value="2" size="large">Option 2</el-radio>
      </el-radio-group>
      <el-input v-model="formData[`input${index}`]"></el-input>
    </div>
    <div>{{ formData }}</div>
  </div>
</template>

<script setup>
import { ref } from 'vue'

const formData = ref({})
</script>

�� 在线Demo

或者

<template>
  <div>
    <div v-for="(item, index) in formData">
      <el-divider content-position="left">Form-{{index}}</el-divider>
      <el-radio-group v-model="item.radio">
        <el-radio value="1" size="large">Option 1</el-radio>
        <el-radio value="2" size="large">Option 2</el-radio>
      </el-radio-group>
      <el-input v-model="item.input"></el-input>
    </div>
    <div>{{ formData }}</div>
  </div>
</template>

<script setup>
import { ref } from 'vue'

const formData = ref(Array.from({length:4}, () => ({ radio:"", input:"" })))
</script>

�� 在线Demo2


但是会需要你有规律的去设置属性key或者预设好初始对象数组,所以最好的方式是你做一个自定的 FormComponent,然后通过组件 v-model 来实现双向绑定。

包修贤
2024-07-08

data里这么定义:

normals: []

初始化钩子的时候push进去初始值

<div class="body-item" v-for="(FXJXM, index) in FXJXMS" :key="index">
    <!-- ... -->
    <el-radio-group v-model="normals[index]" class="radio-group">
        <el-radio :label="1">正常</el-radio>
        <el-radio :label="2">异常</el-radio>
    </el-radio-group>
    <!-- ... -->
</div>
 类似资料:
  • 示例代码如下: 我想通过key动态的绑定processInfo的属性,但是这样不生效,请问各位大佬有什么解决办法?

  • 使用 v-model 指令,可以建立数据到模板的双向绑定。本质上它是如下写法的语法糖: <input v-model="value" /> => <input value={{ self.value }} ev-input={function(e) { self.value = e.target.value; this.update(); }.bind(this)} /

  • 题目描述 关于v-model动态绑定多层级的属性名 题目来源及自己的思路 因为我想做一个自动生成表单的组件,然后绑定初始值时,希望通过对象的层级关系去绑定v-model,这样最后提交的数据,也将是带有层级的对象数据。 相关代码 你期待的结果是什么?实际看到的错误信息又是什么? 假如modelProps接收到一个值是字符串"role.id",那我希望v-model可以变成form.role.id,如

  • 本文向大家介绍vue中v-model对select的绑定操作,包括了vue中v-model对select的绑定操作的使用技巧和注意事项,需要的朋友参考一下 1、单选时 如果 v-model表达式的value初始值未能匹配任何选项,<select> 元素将被渲染为“未选中”状态。在 iOS 中,这会使用户无法选择第一个选项。因为这样的情况下,iOS 不会触发 change 事件。因此,更推荐像上面这

  • 本文向大家介绍JavaScript动态绑定详解,包括了JavaScript动态绑定详解的使用技巧和注意事项,需要的朋友参考一下 问题描述: 假设我们的网页中动态生成了一个按钮,在这个按钮生成之前我们按照一般的事件绑定方法为此按钮绑定了触发事件,但是问题是绑定的事件并没有生效(JavaScript中为元素绑定的事件失效) 分析 1.首先我们来看一下这个按钮是怎么回事: 问题中按钮有一个很关键的特性:

  • 本文向大家介绍AngularJS动态绑定ng-options的ng-model实例代码,包括了AngularJS动态绑定ng-options的ng-model实例代码的使用技巧和注意事项,需要的朋友参考一下 什么情况下会需要动态绑定 ng-model 呢?若你的数据结构长得像是下面这样: 此时你需要用 ng-repeat 将数据展开,并且将 Options 个别设置为 ng-options 的数据

  • 本文向大家介绍什么是iOS的动态绑定 ?相关面试题,主要包含被问及什么是iOS的动态绑定 ?时的应答技巧和注意事项,需要的朋友参考一下 —在运行时确定要调用的方法 动态绑定将调用方法的确定也推迟到运行时。在编译时,方法的调用并不和代码绑定在一起,只有在消实发送出来之后,才确定被调用的代码。通过动态类型和动态绑定技术,您的代码每次执行都可以得到不同的结果。运行时因子负责确定消息的接收者和被调用的方法

  • 问题内容: 我对动态绑定和静态绑定感到非常困惑。我已经读过,在编译时确定对象的类型称为静态绑定,而在运行时确定它的称为动态绑定。 下面的代码会发生什么: 静态绑定还是动态绑定? 这表明什么样的多态性? 问题答案: 您的示例是 动态绑定 ,因为在运行时确定类型是什么,并调用适当的方法。 现在假设您也具有以下两种方法: 即使您更改为 这将打印出来,因为对的调用使用 静态绑定 ,并且编译器仅知道其类型。