2015-08-26 2 views
0

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

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

Проблема: Все элементы, отображаемые в клиентском читаемом формате - item.name (Лондон, Лиссабон, Манчестер) Когда клиент выбрать что-то, мой ng-modelfromSelected равняется только города имя строки, которая ничего не значит для меня, потому что мне еще нужен 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' будет' 'поместить выбранный объект ..Вы можете просто сделать 'fromSelected.id' –

ответ

2

серна,

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

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

Это plunker поможет вам сделать это

+0

Твердый ответ, спасибо большое! Не могли бы вы объяснить, что делает | фильтр $ viewValue делает, если я его включаю, то я не буду заполнять мое окно typeahead или я не вижу, как он заполняется? Что может быть причиной? –

+0

'$ viewValue', как в документации, является фактическим строковым значением в представлении. Он передает фильтру значение представления, чтобы он мог фильтровать ваши результаты. Вы пытались его удалить? Каков был результат? – bobleujr

+1

Когда я удаляю его, он работает. Что происходит, когда мы хотим фильтровать на '$ viewValue'? –

Смежные вопросы