我一直在尝试在对象内部的数组中推送一些注释(对象不是数组,但是有数组)我花了很长时间才能让它工作。我拥有的是
export class test{
recordname: string;
comments: [{
comment: string
}]
}
每次有人输入评论时,我想将它添加到注释数组中,就像这样
addcomment: test;
addRow(){
this.addcomment.comment.push({
comment : 'first comment'})
我尝试使用不同的方式添加它似乎无法使其工作。我推送的消息未定义。我不能使用addcomment:test [] = [];因为这是输入和保存vlaues的形式。 请让我知道如何推送评论值
答案 0 :(得分:0)
你在addcomment.comment上有拼写错误(评论) 像这样。 1.将注释定义为数组。 2.然后只需使用push函数并传入一个对象。
export class test{
recordname: string;
comments: any[];
}
this.addcomment.comments.push({
comment : 'first comment'})
答案 1 :(得分:0)
此示例创建一个新的RecordItem
,我们可以随后将项目推送到其中,初始化一个空的recordName
和comment
数组。
export class Comment {
comment: string
}
export class RecordItem {
recordName: string;
comments: Comment[]
constructor(recordName: string, comments: Comment[]) {
this.recordName = recordName;
this.comments = comments;
}
}
const recordItem = new RecordItem('', []);
recordItem.comments.push({ comment: 'Hey!!' });
答案 2 :(得分:0)
一定要始终初始化你的对象和数组......你可以用不同的方式做到这一点,例如......
export class test{
recordname: string;
comments: any[] = []; //set it as empty array ...intilized
}
addcomment: test = new test(); //<-- INITIALIZE IT
addRow(){
this.addcomment.comment.push({
comment : 'first comment'});
}
或者如果你不喜欢这个approch ...
addcomment: test = new test(); //<-- INITIALIZE IT
addRow(){
//check if nested array is undefined ..or other
if(!this.addcomment.comment || this.addcomment.comment.length<=0)
{
this.addcomment.comment =[]; //<-- INITIALIZE AS EMPTY ARRAY
}
this.addcomment.comment.push({
comment : 'first comment'});
}
希望它可以帮到你!!