У меня есть select-autocomplete на странице диалога, и на первом шаге пользователь выбирает значение.
В зависимости от этого результата выбора я должен создать разные входные группы.
Когда пользователь заполняет этот select-autocomplete, я должен перейти на сервер с сервисом, чтобы получать данные о том, какую входную группу я должен создать в диалоговом окне.
Но внедрение сервиса теряется после заполнения автозаполнения.
В getProp
метод dictionaryService
равен undefined
.
Как связать dictionaryService
с PropertiesDialogComponent
для доступа к сервису внутри getProps
метода?
export class PropertiesDialogComponent implements OnInit {
constructor(public dialogRef: MatDialogRef<PropertiesComponent>,
public dictionaryService: DictionaryRequestService,
@Inject(MAT_DIALOG_DATA) public data: any) {
// in this moment dictionaryService is ok.
}
getProps(searchValue: string): Observable<EntityIdTitle[]> {
debugger
return this.getSearch(searchValue)
.pipe(
map((dicts: DictionaryItemsSearch[]) =>
dicts.map(i => ({id: i.id, title: i.title})))
);
}
}
<h2 matDialogTitle class="mb-3">Add</h2>
<div matDialogContent>
<form>
<div class="form-container">
<app-select-autocomplete
[multiple]="false"
[placeholder]="'property'"
[getOptions]="getProps">
</app-select-autocomplete>
</div>
</div>
// Create more inputs depend on app-select-autocompleteresult
</form>
</div>
PS app-select-autocomplete
- это черный ящик, его огромный компонент. Я не знаю эту работу, он корректно работает в других местах с такими же параметрами.