【问题标题】:Angular ui-select tagging on array of objects对象数组上的角度 ui-select 标记
【发布时间】:2015-02-01 23:36:55
【问题描述】:

情况:

我有一个发送电子邮件的 Angular 应用程序。 共有三个字段:地址 - 主题 - 文本。 地址字段是使用角度构建的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>

PLUNKER:

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

如您所见,它适用于简单的字符串数组,而不适用于对象数组

问题:

如何将 ui-select 中的标记与对象数组一起使用?

【问题讨论】:

    标签: javascript angularjs select tags ui-select


    【解决方案1】:

    标记属性中缺少函数名称。

    试试

    tagging="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

    【讨论】:

    猜你喜欢
    • 2015-02-03
    • 2017-02-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-27
    • 1970-01-01
    • 1970-01-01
    • 2016-01-10
    相关资源
    最近更新 更多