Вот этот код
console.log("usersService body: "+body);
дает вам массив в консоли. Потом вы зачем-то пишете
return body.data || { };
у массива нет свойства
data
, соответственно ваш сервис возвращает пустой объект.
Эту строчку вообще удалите
console.log("appComponent.users: "+this.users);
никто не получает данные из асинхронного запроса таким образом
this.usersService.getUsers()
.subscribe(
users => {
console.log(users);
this.users = users;
},
error => this.errorMessage = <any>error);
Итого
private extractData(res: Response) {
return res.json() || [];
}