【发布时间】:2016-07-05 07:54:00
【问题描述】:
我正在制作一个应用程序,但在尝试将一个数组推入另一个数组时遇到了问题。 我收到一个错误“无法读取未定义的属性‘push’。”
这是对象:
export var CARDS: any[] = [
{
channel: "facebook"
date: "2016-01-07"
comments: [
{
content: "Hey would you look at this card?",
user: "John Appleseed",
avatar: "url"
},
{
content: "I like this card!",
user: "John Doe",
avatar: "url"
}
]
},
{
channel: "facebook"
date: "2016-01-07"
comments: [
{
content: "Hey would you look at this card?",
user: "Jane Doe",
avatar: "url"
}
]
}];
我的应用中有一个选项可以向卡片添加评论。因此我创建了:
newComment = {
content: "",
user: "",
avatar: ""
};
我用一个按钮调用 submitComment 函数:
submitComment(comment) {
console.log(this.newComment);
this.comment.push(newComment);
}
我的 HTML 看起来像这样(仅供参考:我正在使用 ionic,这解释了离子输入)
<ion-input type="text" placeholder="Type a comment..." [(ngModel)]="newComment.content"></ion-input>
<button (click)="submitComment(comment)">Send comment</button>
我在 submitComment 函数中做了一个 console.log,它显示了正确的信息。但是推送不起作用。我收到一个错误“无法读取未定义的属性“推送”。我在括号之间尝试了“this.newComment”,但它也不起作用。
我刚刚开始了解 Angular/JS,所以这可能是一些我无法弄清楚的简单事情。提前感谢您的帮助:-)
编辑:我忘了补充。我做了一个 *ngFor="let comment of card.cmets" 来显示所有 cmets。因此,我只是在进一步的 HTML 中使用“注释”。
【问题讨论】:
-
您有重复的密钥。这将覆盖以前的值。
标签: javascript arrays angularjs angular ionic2