Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cassandra/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 对象输入操作vue中的嵌套数组_Javascript_Arrays_Forms_Vue.js_Object - Fatal编程技术网

Javascript 对象输入操作vue中的嵌套数组

Javascript 对象输入操作vue中的嵌套数组,javascript,arrays,forms,vue.js,object,Javascript,Arrays,Forms,Vue.js,Object,很好,我有一个表单,它由两个迭代加载,一个用于加载活动,另一个迭代在几个月内,我的问题是,当在输入文本中输入文本时,另一个文本中的值是双倍的。输入活动来自数据库,以及需要开始日期和结束日期的月份,这些月份应该分配一个数额。因此,问题在于,这些数量增加了一倍,因此无法正确输入数据 这是我在沙盒中的代码 活动{act.codigo} {{pro.mes}} 康蒂达 导出默认值{ 数据(){ 返回{ 项目:{}, 活动:[], 编程语言:[], Programmatica:{mes:'',

很好,我有一个表单,它由两个迭代加载,一个用于加载活动,另一个迭代在几个月内,我的问题是,当在输入文本中输入文本时,另一个文本中的值是双倍的。输入活动来自数据库,以及需要开始日期和结束日期的月份,这些月份应该分配一个数额。因此,问题在于,这些数量增加了一倍,因此无法正确输入数据

这是我在沙盒中的代码


活动{act.codigo}

{{pro.mes}} 康蒂达

导出默认值{
数据(){
返回{
项目:{},
活动:[],
编程语言:[],
Programmatica:{mes:'',cantidad:'},
}
},
创建(){
this.fetch();
},
方法:{
异步获取()
{   
const proyecto=等待
Repository.show('proyectos',this.$route.params.proyecto_id);
this.proyecto=proyecto.data;
const actividades=等待
Repository.show('actividades',this.$route.params.objetivo_id);
if(actividades.data.length!=0)
{
this.actividades=actividades.data;
}
这是obtenerMeses();
},
obtenerMeses()
{  
var monthNames=[“Enero”、“Febrero”、“Marzo”、“Abril”、“Mayo”、“Junio”,
“胡里奥”、“阿戈斯托”、“七重奏”、“八重奏”、“中篇小说”、“双重奏”];
var datFrom=新日期(this.proyecto.fecha_inicio);
var datTo=新日期(此.proyecto.fecha_fin);
var fromYear=datFrom.getFullYear();
var toYear=datTo.getFullYear();
var diffYear=(12*(toYear-fromYear))+datTo.getMonth();
对于(var i=datFrom.getMonth();i问题是:

for(var i2=0;i2
为每个项目声明对同一数组的引用:
this.programmaticas
。必须为每个项目创建副本。例如:

for(var i2=0;i2
或者更好


for(var i2=0;i2对于(var i=datFrom.getMonth();我非常感谢,这就是解决方案。
<template>
<div class="content">

    <div v-for="(act, index) in actividades" :key="index">
        <div class="row">
            <div class="col-12 mt-3">
                <b>Actividad {{act.codigo}}</b> 
                <div class="row" v-for="(pro, index2) in act.programaticas" :key="index2">    
                    <div class="col-4">
                        <br>
                        {{pro.mes}}
                    </div>
                    <div class="col-8">
                         Cantidad  
                        <input type="number" required class="form-control" v-model="pro.cantidad">
                    </div>
                </div>
            </div>
        </div>
        <hr>
    </div>     
   export default {
    data () {
        return {
            proyecto:{},            
            actividades:[],
            programaticas:[],
            programatica:{mes:'',cantidad:''},
        }
},
created() {
    this.fetch();
},
methods:{
    async fetch()
    {   
    const proyecto = await 
        Repository.show('proyectos',this.$route.params.proyecto_id);           
        this.proyecto = proyecto.data;

    const actividades=await 
        Repository.show('actividades',this.$route.params.objetivo_id);     
        if(actividades.data.length!=0)
        {
            this.actividades = actividades.data;     
        }
        this.obtenerMeses();
    },

    obtenerMeses()
    {  
        var monthNames = [ "Enero", "Febrero", "Marzo", "Abril", "Mayo", "Junio",
        "Julio", "Agosto", "Septiembre", "Octubre", "Noviembre", "Diciembre" ];

        var datFrom = new Date(this.proyecto.fecha_inicio);
        var datTo = new Date(this.proyecto.fecha_fin);

        var fromYear =  datFrom.getFullYear();
        var toYear =  datTo.getFullYear();

        var diffYear = (12 * (toYear - fromYear)) + datTo.getMonth();

        for (var i = datFrom.getMonth(); i <= diffYear; i++) {
            this.programatica.mes=monthNames[i%12] + " " + Math.floor(fromYear+(i/12));
            this.programaticas.push(this.programatica);
            this.programatica={mes:'',cantidad:''};
        }

        for(var i2 = 0; i2 < this.actividades.length; i2++)
        {  
             this.actividades[i2].programaticas=this.programaticas;
        }
    }
}