Разбор ответа API (объекта) от компонента к другому компоненту в Angular 4 - PullRequest
0 голосов
/ 05 сентября 2018

Я хочу разобрать ответ API на другой компонент

Это код из detail_item.component.ts, этот код отправляет данные на маршрут "bookitem" в book_item.component.ts

onSubmit(){
    this.appService.addItem(this.item).subscribe(item => {
      if(item.status ==200){
        this.router.navigate(['/bookitem'], {queryParams: {data: item.data}});
      }
    })
}

это код из book_item.component.ts

ngOnInit() {
    this.routeActive.queryParams.filter(params => params.data).subscribe(params => {
       this.book_item = params.data;
    });
}

когда я console.log(this.book_item), то, что я получил от него, это [объектный объект]. Он должен содержать данные JSON.

Ответы [ 2 ]

0 голосов
/ 05 сентября 2018

Если тип item.data - объект, вам нужно сначала преобразовать его в строку, например

onSubmit(){
    this.appService.addItem(this.item).subscribe(item => {
      if(item.status ==200){
        this.router.navigate(['/bookitem'], {queryParams: {data: 
JSON.stringify(item.data)}});
      }
    })
}

тогда вы можете разобрать его при чтении из маршрута на другом компоненте

 ngOnInit() {
     this.book_item = JSON.parse(this.route.snapshot.queryParams['data']);
          }
0 голосов
/ 05 сентября 2018

Вы получили [object object], что вполне нормально, потому что вы пытаетесь передать объект в строке запроса. Более того, вы не можете передать объект в строке запроса, вы можете передать значение, которое легко конвертируется в строку, например число.

...