ng 2-bootstrap 中的提前输入无法显示 Angular 2 中的项目
Typehead in ng2-bootstrap cannot show items in Angular 2
UPDATED: It supports now nested property now. https://github.com/valor-software/ng2-bootstrap/issues/135
我在 Angular 2.
中使用 ng2-bootstrap
我正在尝试使用 Typeahead。
示例代码
private statesComplex:Array<any> = [
{id: 1, name: 'Alabama'}, {id: 2, name: 'Alaska'}, {id: 3, name: 'Arizona'}];
和
<input [(ngModel)]="selected"
[typeahead]="statesComplex"
(typeaheadOnSelect)="typeaheadOnSelect($event)"
[typeaheadOptionField]="'name'"
class="form-control">
运行良好。
但是当我尝试更改数据格式时
private statesComplex:Array<any> = [
{id: 1, profile: {name: 'Alabama', email: '111'}}, {id: 2, profile: {name: 'Alaska', email: '222'}}, {id: 3, profile: {name: 'Arizona', email: '333'}}];
并使用
<input [(ngModel)]="selected"
[typeahead]="statesComplex"
(typeaheadOnSelect)="typeaheadOnSelect($event)"
[typeaheadOptionField]="'profile.name'"
class="form-control">
它不起作用。我认为问题与typeaheadOptionField有关,但我不知道如何写。
谢谢
看起来这种符号不会被识别为子对象的嵌套 属性(参见 source)。在这种情况下,您可以对数据进行一些预处理。也许通过实际介绍这个助手 属性:
this.statesComplex.forEach(state => state['profile.name'] = state.profile.name);
它将向所有对象添加新的 profile.name
属性,因此预输入应该按预期工作。
UPDATED: It supports now nested property now. https://github.com/valor-software/ng2-bootstrap/issues/135
我在 Angular 2.
中使用 ng2-bootstrap我正在尝试使用 Typeahead。
示例代码
private statesComplex:Array<any> = [
{id: 1, name: 'Alabama'}, {id: 2, name: 'Alaska'}, {id: 3, name: 'Arizona'}];
和
<input [(ngModel)]="selected"
[typeahead]="statesComplex"
(typeaheadOnSelect)="typeaheadOnSelect($event)"
[typeaheadOptionField]="'name'"
class="form-control">
运行良好。
但是当我尝试更改数据格式时
private statesComplex:Array<any> = [
{id: 1, profile: {name: 'Alabama', email: '111'}}, {id: 2, profile: {name: 'Alaska', email: '222'}}, {id: 3, profile: {name: 'Arizona', email: '333'}}];
并使用
<input [(ngModel)]="selected"
[typeahead]="statesComplex"
(typeaheadOnSelect)="typeaheadOnSelect($event)"
[typeaheadOptionField]="'profile.name'"
class="form-control">
它不起作用。我认为问题与typeaheadOptionField有关,但我不知道如何写。
谢谢
看起来这种符号不会被识别为子对象的嵌套 属性(参见 source)。在这种情况下,您可以对数据进行一些预处理。也许通过实际介绍这个助手 属性:
this.statesComplex.forEach(state => state['profile.name'] = state.profile.name);
它将向所有对象添加新的 profile.name
属性,因此预输入应该按预期工作。