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;
}
}
}