typescript - hur man får autokomplettering vid skapande och redigering med ng-2 smart table
Så, här är jag och binder data från en array, det vill säga nameAutocompletee, men jag vill binda det från ett API där tabellens datakälla är bunden. Autocomplete fungerar bra med en hårdkodad array, men i redigeringsläge behåller den inte sitt faktiska värde istället.
Detta är min html
<ng2-smart-table [settings]="settings" [source]="source" (editConfirm)="onSaveConfirm($event)" (createConfirm)="onCreateConfirm($event)" (deleteConfirm)="onDeleteConfirm($event)"> </ng2-smart-table>detta är min component.ts-fil
source: LocalDataSource; nameAutocompletee =[ { id: 1, name: 'Warehouse 1', }, { id: 1, name: 'Warehouse 2', }, { id: 1, name: 'Warehouse 23', }, { id: 1, name: 'Warehouse 12', }, { id: 1, name: 'Warehouse 5', }, ]; settings = { add: { addButtonContent: '<span class="">Add</span>', createButtonContent: '<i class="nb-checkmark"></i>', cancelButtonContent: '<i class="nb-close"></i>', confirmCreate: true, }, edit: { editButtonContent: '<i class="nb-edit"></i>', saveButtonContent: '<i class="nb-checkmark"></i>', cancelButtonContent: '<i class="nb-close"></i>', confirmSave: true, }, delete: { deleteButtonContent: '<i class="nb-trash"></i>', confirmDelete: true, }, columns: { name: { title: 'Name', type: 'html', editor: { type: 'completer', config: { completer: { data: this.nameAutocompletee, searchFields: 'name', titleField: 'name' }, }, } }, address: { title: 'Address', type: 'html', }, }, }; constructor(private orderManagerService: OrderManagerService) { this.GetCompanyDetails(); } ngOnInit() { this.GetCompanyDetails(); } GetCompanyDetails() { this.orderManagerService.GetCreateNewOrders().subscribe(res => { this.source = new LocalDataSource(); this.source.load(res.createOrders); }, ); }
Här vill jag binda data från API:et eftersom tabellens data är bunden, men jag vet inte hur jag ska binda det, eftersom det i dokumentationen inte är tydligt nämnt.
Svar #1
Det du kan göra är att ställa in värdet på settings.editor.config.completer.data-objektet när löftet eller observabeln från ditt API är klart.
this.someService().getNameAutoComplete().then(res =>{ this.settings.editor.config.completer.data = res});
anropa tjänsten i konstruktören eller i OnInit.
