我的项目中有以下Json结构:
"disputas": [
{
id: "",
tipo_negociacao: "",
historico:[{
fl_usuario: "",
created_at: "",
updated_at: "",
created_by: null,
updated_by: null,
texto: "",
}]
}
]
我想在点击按钮时添加historico
的新索引但不知道如何操作,我希望它看起来像这样:
"disputas": [
{
id: "",
tipo_negociacao: "",
historico:[{
fl_usuario: "",
created_at: "",
updated_at: "",
created_by: null,
updated_by: null,
texto: "",
},
{
fl_usuario: "",
created_at: "",
updated_at: "",
created_by: null,
updated_by: null,
texto: "",
}
]
}
]
到目前为止,我已经完成了这样的事情(按钮调用的功能):
recusaProposta() {
this.disputa.historico[this.i].texto = "something";
this.i++;
}
现在,自从i
开始0
这是第一次点击按钮时有效,但如果我再次点击它,我将收到此错误:
无法设置属性' texto'未定义的
有人能帮助我吗?感谢
答案 0 :(得分:1)
你遇到了错误
无法设置未定义的属性'texto'
当您尝试访问未定义或null对象上的属性时。
首先必须在其位置创建一个空对象(如果尚未存在)。 代码的方式是,期望对象出现在您尝试访问的索引中。
var existingObj = this.disputa.historico[this.i];
// if the value is falsy, then go ahead and create
// an empty object at that index
if(!existingObj) {
this.disputa.historico[this.i] = {};
}
existingObj.texto = "something";
答案 1 :(得分:1)
只需追加一个数组:
this.disputa.historico.push({/* your object here*/});
答案 2 :(得分:1)
只需将新项目推送到historico数组:
this.disputa.historico.push({
fl_usuario: "",
created_at: "",
updated_at: "",
created_by: null,
updated_by: null,
texto: ""
});
答案 3 :(得分:0)
试试这个
disputas.historico.push({/* obj*/});