Проблемы с возвратом данных с Angular httpClient - PullRequest
0 голосов
/ 08 ноября 2018

Привет, у меня есть простой контроллер, который возвращает простой (я упростил все это для этого поста):

  [HttpGet("[action]")]
  public AppSettings GetStuff()
  {
        var stuff = new Stuff { Dummy = ”Hi”; };
        return stuff;
  }

  public class Stuff
  {
    public string Dummy { get; set; }
  }

Все хорошо, теперь я звоню из службы Angular:

getStuff(): Observable<IStuff> {
    return (this.httpClient
        .get<IStuff>(this.localUrl)
        .pipe(
            catchError(this.errorHandlerSerevice.handleError)
        )) as any;
} 

Вот мой IStuff:

export interface IStuff {
    Dummy?: string;
}

Все хорошо ... Консоль показывает мне 200 и ответ…

Но когда я подписываюсь на getStuff () из моего компонента, я получаю [объектный объект] или идентифицируем… Я попробовал несколько подписок, но не повезло:

stuff: IStuff;

getStuff(){
    this.stuffService.getStuff()
        .subscribe(stuff => this.stuff = stuff); 
}
Or:
getStuff(){
    this.stuffService.getStuff()
        .subscribe((data: IStuff) => this.stuff = {
            Dummy: data['Dummy']
        });
}

Есть идеи?

1 Ответ

0 голосов
/ 08 ноября 2018

Когда вы делаете это:

instance .subscribe(data => { this.stuff = data; alert(data); });

Вы пытаетесь напечатать data в окне предупреждения. Но поскольку data является объектом JavaScript, вы видите [Object object], так как предупреждение вызовет toString для него. Если вы хотите, чтобы фактическое содержимое было напечатано, вам придется stringify его.

Попробуйте это:

alert(JSON.stringify(data));

Это должно напечатать фактический ответ.

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