javascript - 如何将对象放入另一个对象 Angular/Javascript

标签 javascript arrays angularjs angular ionic2

我正在制作一个应用程序,但在尝试将一个数组插入另一个数组时卡住了。 我收到错误消息“无法读取未定义的属性‘推送’。”

这是对象:

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,这解释了 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.comments"来显示所有评论。因此,我只是在进一步的 HTML 中使用“评论”。

最佳答案

您的问题是因为您提供给 submitComment 方法的 comment 变量为空。所以你不能调用任何方法(特别是push)...

否则您的 CARDS 属性似乎没有正确定义。您宁愿这样定义它:

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

关于javascript - 如何将对象放入另一个对象 Angular/Javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38198051/

相关文章:

javascript - 如何确定 Html 表格列的类型

Javascript - 注册用户在整个访问期间按下给定按钮的时间

arrays - 如何使用 swift 用两个不同的数组填充 TableView 中的两个部分?

从 realloc() 函数创建函数

javascript - 拼接对象的属性?

javascript - 如果未传递参数,CoffeeScript/JavaScript 如何出错?

arrays - 更快地大范围修改(TextToDisplay)超链接的方法

javascript - 在 Express 3.4.8 中使用 HTTP 状态代码响应时,POST 数据获取 "lost"

javascript - 在 Angular 中的 Controller 之间共享数据,观看还是不观看?

angularjs - Angular $resource.get 可以为 GET 处理数组和非数组吗?