привязка данных не удалась в ng2-select

Я пытаюсь привязать массив объектов к выпадающему с помощью ng2-select. Он отлично работает, когда я пытался использовать массив строк

private category: Array<object> = [{ "value": 1, "text": "Table" }, { "value": 2, "text": "Chair" }, { "value": 3, "text": "Light"}]

и мой html следующим образом:

 <ng-select [items]="category" [allowClear]="true"
                                       placeholder="No country selected">
                            </ng-select>

Я также импортировал selectModule в свой module.ts


person user19041992    schedule 21.04.2017    source источник
comment
Можно поконкретнее с вашей проблемой. Вы получаете сообщение об ошибке консоли или выпадающее меню выбора пусто?   -  person Mario Petrovic    schedule 21.04.2017
comment
выберите раскрывающийся список пуст   -  person user19041992    schedule 21.04.2017


Ответы (1)


Формат ваших данных неверен.

Вместо:

private category: Array<object> = [
    { "value": 1, "text": "Table" },
    { "value": 2, "text": "Chair" },
    { "value": 3, "text": "Light" }
]

Использовать:

private category: Array<object> = [
    { "id": 1, "text": "Table" },
    { "id": 2, "text": "Chair" },
    { "id": 3, "text": "Light" }
]

Разница заключается в value, который представляет собой ключ одного элемента. Это, конечно, определено разработчиком модуля ng-select.

person Mario Petrovic    schedule 21.04.2017
comment
но что, если данные поступают из веб-API? Обязательно ли преобразовывать данные в формат {id: ,text: } - person user19041992; 21.04.2017
comment
Да, вам нужно это сделать. Поскольку вы никак не можете определить, что является ключом, а что является значением в вашем объекте, он просто не раскрывается разработчиком ng-select. Но это не редкость в большинстве выпадающих модулей. - person Mario Petrovic; 21.04.2017