В моей базе данных есть таблица, в которой идентификаторы значений не являются непрерывными, например:
- id: 1, имя: john, фамилия: doe
- id: 5, имя: том, фамилия: том
, поэтому я хочу с помощью запроса get получить все значения в таблице и отобразить их.
Все запросы с непрерывными идентификаторамиработает просто отлично.Я использую Angular 6, поэтому теперь мне не нужно преобразовывать свой ответ в json, а затем читать его.Я также проверил мой запрос с почтальоном, и он возвращает все значения.Вот часть ответа:
[
{
"id": 1,
"name": "Visionwai 2",
"createdDate": "2019-02-04T12:06:54.1667898",
"description": "Visionwai à Etincelle",
"nbrOfEmployees": 5
},
{
"id": 3,
"name": "Visionwai",
"createdDate": "2019-02-06T12:23:59.0105529",
"description": "",
"nbrOfEmployees": 0
},
{
"id": 18,
"name": "t",
"createdDate": "2019-02-07T11:11:11.123",
"description": null,
"nbrOfEmployees": 0
}
]
У меня есть свой requestService.ts, который просто возвращает запрос, вот проблемный запрос
getClients() {
var self = this
return self.http.get(this.connectionString+'clients',
self.authorizationToken)
}
У меня есть dataService.ts, которыйбудет вызываться в большинстве моих компонентов и позволяет мне сохранять результаты запросов, чтобы я не вызывал запросы каждый раз, если данные уже были загружены один раз.
clients = new BehaviorSubject([]);
storeClientsList(load = false){
if(this.clients.value.length == 0 || load){
this.requests.getClients()
.subscribe((clients:any[]) =>{
console.log(clients)
this.clients.next(clients)
console.log('Request executed')
})
}
else{
this.clients.next(this.clients.value)
}
console.log(this.clients)
}
Вот результатconsole.log (clients) (тот же результат, что и для console.log (this.clients), он просто возвращает поведениеSubject с этим значением в нем).
0:
createdDate: "2019-02-04T12:06:54.1667898"
description: "Visionwai à Etincelle"
id: 1
name: "Visionwai 2"
nbrOfEmployees: 5
А затем в моем компоненте я выполняю операции, подобныеэто (здесь заполнение коврик-выбор)
this.dataService.storeClientsList()
this.dataService.clients
.subscribe(clients => {
clients.map(client => {
let data = {value: client.name, viewValue: client.name};
this.companyList.push(data)
})
})
Заранее спасибо за вашу помощь!