угловой ремешок типа перед фильтром

Я пытаюсь использовать typehead из углового ремешка.

У меня есть массив для ввода:

`$scope.icons = [
    {value: 'idGear', label: 'Gear'},
    {value: 'idGlobe', label: 'Globe'},
    {value: 'oidHeart', label: 'Heart'},
    {value: 'camera', label: 'Camera'}
  ];`

и хочу отфильтровать массив на label, поэтому я добавил:

bs-options="icon.value as icon.label for icon in icons|filter:{label:$viewValue}"

но когда я выбираю первый элемент ввода, я вижу value (idGear), но не label (Gear). Он отлично работает для последнего элемента {value: 'camera', label: 'Camera'}, если value почти такой же, как label

вот планкер с демонстрацией проблемы /а>

Спасибо за любую помощь.


person Serhii Andronik    schedule 27.02.2018    source источник


Ответы (1)


Почему бы не передать ему полный объект, и оттуда вы можете соответствующим образом манипулировать им:

<input type="text" 
class="form-control"
ng-model="selectedIcon" 
data-min-length="0" 
data-html="1"
bs-options="icon as icon.label for icon in icons|filter:{label:$viewValue}" 
placeholder="Enter icon" bs-typeahead>

то есть, если вы хотите использовать значение

var myval = selectedIcon.value;
var mylab = selectedIcon.Label;
person AlexanderDrysdale    schedule 15.08.2018