Передача данных из консоли на URL - PullRequest
1 голос
/ 28 февраля 2020

Когда я нажимаю на кнопку, я получаю правильные данные в консоли, но теперь, когда я нажимаю на кнопку, я хочу, чтобы данные 'reid' передавались по URL. Когда я пытаюсь:

this.router.navigateByUrl('/details/' + this.results.reid);

я получаю неопределенное обратно.

enter image description here

home.page.ts

searchName() {
    this.results = this.userService.getName(this.searchTermName).subscribe(result => {
        console.log('Restaurant: ', result);
        this.router.navigateByUrl('/details/' + this.results.reid);
        });
  }

home.page. html

<ion-grid >
        <ion-row >

            <ion-col size-xs="12" size-sm="12" size-md="8" size-lg="8">
                <ion-searchbar placeholder="Restaurant" [(ngModel)]="searchTermName" ></ion-searchbar>
            </ion-col>
        </ion-row>
</ion-grid>

<div class="btn" >
  <ion-button (click)="searchName()"color="primary" fill="solid">
       suchen
  </ion-button>
</div>

user.Service.ts

 getName(name1) {
    return this.http.get('http://127.0.0.1:8000/searchRestaurantByName', {headers: {name: name1}}).pipe(
        map(name => {
            console.log('RAW: ', name1);
            return name;
        })
    );
  }

Ответы [ 3 ]

4 голосов
/ 28 февраля 2020

results - это массив, поэтому вы должны использовать:

this.router.navigateByUrl('/details/' + result[0].reid);

Обратите внимание, что у вас есть опечатка, это result, а не results, если я вижу в общих чертах.

1 голос
/ 28 февраля 2020

this.results - подписка. Он не содержит никакого свойства 'reid'.

Что вы должны сделать, это

  searchName() {
    this.userService.getName(this.searchTermName)
     .subscribe(result => {
       this.router.navigateByUrl('/details/' + result[0].reid);
     });
  }
1 голос
/ 28 февраля 2020

Я вижу, что this.results - это массив объектов, это нормально, что вы получаете undefined, попробуйте сначала найти объект который после выполнения перенаправления. для теста вы можете использовать result[0].reid, вы должны получить свои 39.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...