Результаты привязки данных в [объект объекта] - PullRequest
0 голосов
/ 19 июня 2019

Я пытаюсь привязать записи строк к своему виду. Это мой код на бэкэнде:

 [Route("GetCarCount")]
        [HttpGet]
        public async Task<long> Count()
        {
            return await _context.Cars.CountAsync();
        }

У меня есть тест, и он работает. Я получаю результат, как число

9

Теперь я хочу привязать это к представлению, что это мой код в сервисе.

 getCount() {
    return this.http.get(this.baseUrl + 'GetCarCount');
  }

И я называю этот метод так:

 GetCarCount() {
    this.countrecords = this.carservice.getCount();
  }

Я объявил переменную следующим образом:

countrecords: any;

Теперь я свяжу это так:

<label>Records count: = {{countrecords}}</label>

Это не показывает число 9 вместо этого я получаю [object Object]

Я пытался так, но у меня не получилось

JSON.parse JSON.stringify

Что я делаю не так?

Ответы [ 2 ]

3 голосов
/ 19 июня 2019

Судя по вашей реализации, countrecords будет иметь тип Observable<number>.Используйте async канал в вашем шаблоне, чтобы развернуть его значение.

<label>Records count: = {{countrecords | async}}</label>
2 голосов
/ 19 июня 2019

Переменные countrecords будут наблюдаемыми.Методы http, такие как .get или .put являются Cold Observables ->

Cold Observables запускаются только после подписки, т. Е. Наблюдаемая последовательность начинает выдавать значения наблюдателям только при вызове Subscribe,(…) Это отличается от горячих наблюдаемых событий, таких как события перемещения мыши или биржевые тикеры, которые уже производят значения еще до того, как подписка активна.

Следовательно

  • Весьма вероятно, что запрос API не выполняется
  • Более того, в {{countrecords}} он не будет отображать значение, которое было вам возвращено, поскольку оно содержит подписку (а не значение, которое вы 'я получу подписку на эту подписку)

Я бы предложил

GetCarCount() {
this.carservice.getCount().subscribe((value)=>{this.countrecords=value});
}

, а остальное останется прежним.Надеюсь, это поможет.

...