Угловой простой выбор вопроса

0

Я предполагаю, что это должна быть общая картина, как люди справляются с этим, но я удивлен, почему я не могу найти что-либо в Интернете.

Допустим, у меня есть массив объектов, и я хочу отображать эти объекты для клиента в окне typeahead. Когда клиент выбирает что-то, я хочу запомнить выбор клиента и продолжить процесс.

Проблема: все элементы отображаются в читаемом для пользователя формате - item.name (Лондон, Лиссабон, Манчестер). Когда клиент выбирает что-то, моя ng-model fromSelected равна только имени строки города, что для меня ничего не значит, потому что мне все еще нужен id для дальнейшего обработка.

Не могли бы вы предложить, как я могу сделать fromSelected равным объекту, а не строке, но в то же время предоставлять дружественный вывод пользователю?

var app = angular.module("fly");

app.controller('PlaceController', function($scope) {


$scope.fromSelected ='';

$scope.getPlace = function() {

  var items = []
  items.push({
        'id': 1,
        'name': London
      });
  items.push({
      'id': 2,
      'name': Lisbon
      });

 return items;
};

});

HTML:

<input type="text" ng-model="fromSelected" placeholder="Country, city or airport" typeahead="place.name for place in getPlace()" typeahead-loading="loadingLocations" typeahead-no-results="noResults" class="form-control">
  • 0
    Ваш fromSelected будет иметь place , выбранное object..you может просто сделать fromSelected.id
Теги:

1 ответ

2
Лучший ответ

Дикий козел,

ваше предложение typeahead может сделать это для вас. как item as item.name for item in data | filter:$viewValue item as item.name for item in data | filter:$viewValue

Это в основном говорит вашему typeahead, чтобы показать ваш item.name, но вернуть объект item в модель

Этот плунжер поможет вам сделать это

  • 0
    Твердый ответ, большое спасибо! Не могли бы вы объяснить, что делает | фильтр $ viewValue делает, если я включаю его, мое окно typeahead не заполняется, или я не вижу, как оно заполняется? В чем может быть причина?
  • 0
    $viewValue как в документации, является фактическим значением строки в представлении. Он передает фильтру значение представления, чтобы он мог фильтровать ваши результаты. Вы пытались удалить это? Каков был результат?
Показать ещё 3 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню