У меня эта проблема слишком часто. Попытка получить список пользователей (из базы данных) и показать их в
user-admin.component. html:
<div class="col-md-2 offset-1">
<select size=20 [ngStyle]="{'width': '200px'}">
<option *ngFor="let name of userNames">{{name}}</option>
</select>
</div>
user-admin.component.ts
userNames: string[] = [];
constructor(private fb: FormBuilder,
private authService: AuthService
) { }
ngOnInit() {
this.authService.getAllUserNames(this.userNames);
getAllUserNames - это функция в сервисе: authService.
getAllUserNames(userNames: string[]) {
this.http.get(this.baseUrl + 'usernames').subscribe( (results: string[]) => {
userNames = results;
});
}
Когда страница запускается (ngOnInit) и эта функция вызывается, она корректно возвращает 'userNames' со списком из двух имен пользователей.
![enter image description here](https://i.stack.imgur.com/i3frs.png)
Я могу только предположить, что userNames user-admin.component имеет тот же список. (Я проверил html, чтобы убедиться, что в нем будут перечислены имена, если они есть в списке).
Решение? Я предполагаю, что мне нужно вызвать ChangeDetection, и это действительно не кажется необходимым?
ИЛИ this.userNames должен быть ссылочной переменной. Я думал, что это уже (список типов строк). Я попытался создать класс только с this.userName в качестве единственного содержимого, а затем передал класс 'new AllUsers', но список внутри AllUsers также не отображался с именами пользователей.
Идеи? Заранее спасибо. Йог.