情况:
我有一个发送电子邮件的角度应用程序。有三个字段:地址 - 主题 - 文本。地址字段是使用角度 ui 选择构建
的可以从列表中选择电子邮件地址或重新输入。输入新电子邮件地址时出现问题。
我正在尝试使用标记属性来获取它。但据我所知,只有当 ui-select 由简单字符串数组组成时才有效,而不是当由对象数组组成时
法典:
<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}} <{{$item.email}}></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>
普朗克:
http://plnkr.co/edit/nngkvjiQmI44smcNGRGm?p=preview
如您所见,它适用于简单的字符串数组,而不是对象数组
问题:
如何在对象数组中使用 ui-select 中的标记?
属性中缺少函数名称。
尝试
tagging="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