Angular 如何将新创建的项添加到数组中?

Angular 如何将新创建的项添加到数组中?,angular,typescript,Angular,Typescript,我有一个带有创建功能的angular应用程序,可以添加电影: createMovie(movie: Movie): void { this._dataService.createMovie<Movie>({'id': 20, 'name': 'Star Wars'}) .subscribe((data) => this.movie = data, error => () => { 'something went wrong'; },

我有一个带有创建功能的angular应用程序,可以添加电影:

createMovie(movie: Movie): void {
  this._dataService.createMovie<Movie>({'id': 20, 'name': 'Star Wars'})
  .subscribe((data) => this.movie = data,
  error => () => {
      'something went wrong';
  },
  () => {
      console.log(this.movies);
  });
}
createMovie(电影:电影):无效{
这个._dataService.createMovie({'id':20,'name':'starwars'))
.subscribe((数据)=>this.movie=数据,
错误=>()=>{
“出了点问题”;
},
() => {
console.log(this.movies);
});
}
这将调用服务中的createMovie()函数:

public createMovie<T>(movie: Movie): Observable<T> {
    console.log(movie);
    return this.http.post<T>('/api/movies/', movie);
}
publicCreateMovie(电影:电影):可观察{
console.log(电影);
返回此.http.post('/api/movies/',movie);
}
很好用。我可以在数据库和刷新页面时看到添加的对象

在我的app.component.ts中,我有一个
movies:Movie[]


将新创建的电影添加到该阵列的正确方法是什么?

只需将应用程序组件中的
createMovie()
方法更改为:

createMovie(movie: Movie): void {
  this._dataService.createMovie<Movie>({'id': 20, 'name': 'Star Wars'})
  .subscribe(
    (data) => {
      this.movie = data;
      this.movies.push(this.movie); // <- adding the new movie to the movies array
    },
    (err) => {
      // Error handling
    },
    () => {
      console.log(this.movies);
    });
};
createMovie(电影:电影):无效{
这个._dataService.createMovie({'id':20,'name':'starwars'))
.订阅(
(数据)=>{
this.movie=数据;
this.movies.push(this.movie);//{
//错误处理
},
() => {
console.log(this.movies);
});
};

您可以使用
电影。推送(电影)
。或者使用扩展运算符“…”,如
[…电影,电影]

只需简单的javascript。应该是电影。推送(电影)向上投票给@bgraham
var fruits = ["Banana", "Orange", "Apple", "Mango"];
//Banana,Orange,Apple,Mango

fruits.push("Kiwi");
//Banana,Orange,Apple,Mango,Kiwi