对象数组上的角度ui-select标记

Fra*_*ssi 6 javascript tags select angularjs ui-select

情况:

我有一个发送电子邮件的角度应用程序.有三个字段:地址 - 主题 - 文本.地址字段使用角度ui-select构建

电子邮件地址可以从列表中选择或重新输入.问题是输入新的电子邮件地址.

我试图使用标记属性来获取它.但据我所知,只有当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}} &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>
Run Code Online (Sandbox Code Playgroud)

PLUNKER:

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

正如您所看到的,它对于简单的字符串数组而不是对象数组是正常的

题:

如何在ui-select中使用带有对象数组的标记?

小智 13

您在标记属性中缺少函数名称.

尝试

标记= "tagTransform"

然后在控制器范围中添加tagTransform函数

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

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

  • 标记可以没有多个? (3认同)