SQL COUNT () и Angular - PullRequest
       2

SQL COUNT () и Angular

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

У меня проблема с отображением команды SQL (Count ()) с Angular.

PHP-файл (нет проблем с этим файлом):

$app->get('/animal/{idA}/nb', function ($idA) use ($app) {
$sql = "SELECT COUNT(*) as nbTotal FROM animal WHERE idAnimal = :idA;
$animalCount = $app['db']->fetchAssoc($sql, array('idA' => (int) $idA));

 return json_encode($animalCount); });

Но чтобы отобразить его с помощью Angular:

animal.service.ts

getNbAnimals(idA: number){ return this.http.get(this.apiUrl + '/animal/' + idA + '/nb'); }

animal.component.ts

 getNbAnimals(idA: number){ this.animalService.getNbAnimals(idA); }

animal.component.html

<p>{{getNbAnimals(idAnimal.value)}}</p>

Результатом этого HTML-файла является [объект Object].Я не знаю, как отобразить мой счет ().Если вы можете мне помочь, спасибо!

Ответы [ 2 ]

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

Я думаю, у вас есть объект, возвращенный

 this.http.get(this.apiUrl + '/animal/' + idA + '/nb');

Так что просто сделайте дополнительный шаг перед возвратом

 phpObj = this.http.get(this.apiUrl + '/animal/' + idA + '/nb');
 //and then return object property value
 return phpObj.nbTotal;

Или вы можете исправить свой php-ответ так, чтобы он возвращал только значение, но не массив:

 return json_encode($animalCount['nbTotal']);
0 голосов
/ 15 ноября 2018

Это потому, что вы пытаетесь отобразить то, что возвращает эта функция, что обычно является наблюдаемым.Вместо этого попробуйте:

<p>{{getNbAnimals(idAnimal.value) | async}}</p>

или subscribe для этой службы в части TS:

 getNbAnimals(idA: number){ 

    return this.animalService.getNbAnimals(idA)
           .subscribe((response)=> return response);
 }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...