2014-12-04 1 views
6

СИТУАЦИИ:Угловой UI-выберите пометки на массиве объектов

У меня есть угловое приложение, которое отправляет сообщения электронной почты. Существует три поля: Адрес - Тема - Текст. Адресное поле построено с использованием угловых ui-select

Адрес электронной почты можно выбрать из списка или ввести заново. Проблема заключается в вводе нового адреса электронной почты.

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

КОД:

<h3>Array of objects</h3> 
<ui-select multiple tagging tagging-label="new tag" ng-model="multipleDemo.selectedPeople" theme="select2" ng-disabled="disabled" style="width: 800px;"> 
    <ui-select-match placeholder="Select person...">{{$item.name}} &lt;{{$item.email}}&gt;</ui-select-match> 
    <ui-select-choices repeat="person in people | propsFilter: {name: $select.search, age: $select.search}"> 
    <div ng-bind-html="person.name | highlight: $select.search"></div> 
    <small> 
     email: {{person.email}} 
     age: <span ng-bind-html="''+person.age | highlight: $select.search"></span> 
    </small> 
    </ui-select-choices> 
</ui-select> 
<p>Selected: {{multipleDemo.selectedPeople}}</p> 

PLUNKER:

http://plnkr.co/edit/nngkvjiQmI44smcNGRGm?p=preview

Как вы можете видеть, что он правильно работает простой массив строк, а не с о bjects массив

ВОПРОС:

Как я могу использовать пометку в UI-выберите с массивом объектов?

ответ

9

у вас отсутствует имя функции в поле с пометкой.

попробовать

мечения = "tagTransform"

, а затем добавить функцию tagTransform в области контроллера

$scope.tagTransform = function (newTag) { 
    var item = { 
    name: newTag, 
    email: newTag+'@email.com', 
    age: 'unknown', 
    country: 'unknown' 
    }; 
    return item; 
}; 

http://plnkr.co/edit/7fSAKmj3pLeeTaid4pMH?p=preview

+2

может, мечение быть сделано без кратных? –

+0

Для чего это стоит. Да, это можно сделать, установив: tagging-label = "false". Источник: https://github.com/angular-ui/ui-select/issues/983 – Idrees

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

  • Нет связанных вопросов^_^