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

时间:2017-09-19 16:59:26

标签: angular typescript

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

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()函数:

public createMovie<T>(movie: Movie): Observable<T> {
    console.log(movie);
    return this.http.post<T>('/api/movies/', movie);
}

它工作正常。我可以在数据库中看到添加的对象,并在页面上刷新。

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

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

3 个答案:

答案 0 :(得分:3)

只需将 app.component 中的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);
    });
};

答案 1 :(得分:0)

您可以使用movies.push(movie)。或者像[...movies, movie]

一样使用点差运算符“...”

答案 2 :(得分:0)

var fruits = ["Banana", "Orange", "Apple", "Mango"];
//Banana,Orange,Apple,Mango

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