tabset ngbtooltip ngbdropdown ngbdatepicker ngbcollapse ngb bootstrap angular bootstrap-typeahead ng-bootstrap

ngbtooltip - NgbTypeahead selectItem haz clic en el elemento ngBootstrap angular2



ngbdropdown (1)

En esta respuesta , me fue explicado que use selectItem para obtener el evento seleccionado.

Pero en este punto, el modelo que encuaderné al cuadro de texto sigue siendo el texto original que escribió el usuario, no el elemento seleccionado.

yo suelo

(selectItem)="search(model)"

para obtener el evento, y en TS

search(model) { this._service.search(model).subscribe( results => this.results = results, error => this.errorMessage = <any>error);

}

pero como se mencionó anteriormente, eso llama a mi backend con el texto escrito por el usuario, no el texto completo del elemento seleccionado de typeahead.

Mis registros de backend

2017/03/24 20:44:14 /api/typeahead/ok 2017/03/24 20:44:14 /api/search/ok

donde el segundo debe ser / api / search / $ actualSelectedItem.


Debería usar $event para obtener los elementos seleccionados como se muestra a continuación

<input type="text" class="form-control" (selectItem)="selectedItem($event)" [(ngModel)]="model" [ngbTypeahead]="search" [resultFormatter]="formatter" /> <hr> <pre>Model: {{ model | json }}</pre> clicked item {{clickedItem}}

Tu método debe ser como

selectedItem(item){ this.clickedItem=item.item; console.log(item); }

DEMO EN VIVO