vue中动态循环model

vue动态循环model与angular有所不同,angular直接定义一个数组,然后传入循环列表的index即可。

而vue不仅需要定义一个数组,还需要通过接口读出循环的数组长度,然后在create中先创建出来。

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
        <script type="text/javascript" src="js/vue.js" ></script>
    </head>
    <body>
        <div id="app">
            <div class="line" v-for="(index,item) in dataModel">
                <input type="text" v-model="dataModel[index].value1" />
                <span>{{dataModel[index].value1}}</span>
                <button v-bind:data-index="index" v-on:click="submitClick">提交</button>

                <input type="text" v-model="dataModel[index].value2" />
                <span>{{dataModel[index].value2}}</span>
            </div>
        </div>
    </body>
    <script src="https://h5.u51.com/99fenqi/vue/common/vue.min.js"></script>

    <script>
        var app = new Vue({
            el: "#app",
            data: {
                // 创建一个空的数组
                dataModel: []
            },
            created: function(){
                // 这里是动态生成v-model,这个可以放在网络请求成功里面;
                var len = 4;
                for (var i = 0; i < len; i ++) {
                    var item = {value1: ‘‘,value2: ‘‘};
                    this.dataModel.push(item);
                }
            },
            methods: {
                // 显示v-model里面的数据
                submitClick: function(event){
                    var tag = event.target;
                    var index = tag.getAttribute(‘data-index‘);
                    alert(this.dataModel[index].value1);
                }
            }
        })
    </script>
</html>

参考文章:http://blog.csdn.net/zhuming3834/article/details/70170305

p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; color: #e4af09 }

时间: 2024-10-08 01:07:44

vue中动态循环model的相关文章

vue中动态添加div

知识点:vue中动态添加div节点,点击添加,动态生成div,点击删除,删除对应的div,其中数组的长度是动态改变的,如在from表单中应用,直接在提交方法中,获得list,获取所填的元素即可 效果: 核心代码说明(样式代码可自行修改,详细代码请参照源码): <div v-for="(v,i) in list"> <div class="form-group m-form__group row" style="padding-top: 1

vue中动态添加class类名的方法

<template> <div> <h2>动态添加类名</h2> <!-- 第一种方式:对象的形式 --> <!-- 第一个参数 类名, 第二个参数:boolean值 --> <!-- 对象的形式: 用花括号包裹起来,类名用引号, --> <!-- 优点: 以对象的形式可以写多个,用逗号分开 --> <p :class="{'p1' : true}">对象的形式(文字的颜色)&l

【转】vue中动态设置meta标签和title标签

因为和原生的交互是需要h5这边来提供meta标签的来是来判断要不要显示分享按钮,所有就需要手动设置meta标签,标题和内容 //router内的设置 { path: '/teachers', name: 'TDetail', component: TDetail, meta: { title:"教师详情", content: 'disable' } }, { path: '/article', name: 'Article', component: Article, meta: { t

vue中v-for循环如何将变量带入class的属性名中

https://blog.csdn.net/qlwangcong518/article/details/88648303 原文地址:https://www.cnblogs.com/namehou/p/11320263.html

vue中动态class写法

<div class="wrap" :class="{active:index==current}"></div> <div class="wrap" :class="index==current?'active':''"></div>//或者 原文地址:https://www.cnblogs.com/chenluqing/p/11428916.html

vue中简单的小插曲

我们现在来学习一下vue中一些简单的小东西: 首先我们必须要引入vue.js文件哦! 1.有关文本框里的checkbox js代码: new Vue({ el:"#app", data:{ mag:" " } }) html代码: <div id="app"> <input type="checkbox" v-model="mag"> <h1>{{mag}}</h1

通过dva-model-extend实现 dva 动态生成 model

前言 实现通过单个component 单个router通过相应的标识对应产生不同model实现数据包分离,model namespce将会覆盖基础的Model,其中的model[state|subscriptions|effects|reducers] 将通过Object.assign进行复制( Object.assign({},obj,obj1) )将源对象里面的属性添加到目标对象中去,若两者的属性名有冲突,后面的将会覆盖前面的. 背景 在子路由中动态导入model, 因为model比较大,

VUE中演示v-for为什么要加key

说到这个问题想必要举个例子了 image 没有key <div id="app"> <div> <input type="text" v-model="name"> <button @click="add">添加</button> </div> <ul> <li v-for="(item, i) in list">

vue中 表头 th 合并单元格,且表格列数不定的动态渲染方法

吐槽 今天,在vue中遇到 复杂表格的渲染 ,需要合并表头th的单元格,且合并单元格的那列的表头数据是动态数据,也就是不知道会有多少个表头列,而这几个表头列还分了好几个子表头. 这个需求在js里用Juicer模板很好做的,思路我是有的,但就是对于vue,我也算初学者,很多概念不是很懂,这就限制了思路. 在网上搜了很多合并单元格的都是简单的数据合并,也就是td合并, 不是我们的需求,就不贴了. 哎,废话不多说了,看代码吧: 代码示例 使用iviewui的table组件: 最初,直接使用项目中的iv