2014-12-04 50 views
6

狀況:角UI選標記

我具有有角的應用程序,發送電子郵件。 有三個字段:地址 - 主題 - 文本。 地址字段是使用角度構建的ui-select

電子郵件地址可以從列表中選擇或重新輸入。 問題是輸入新的電子郵件地址。

我正在嘗試使用標記屬性來獲取它。 但據我可以看到的是工作僅在UI的選擇是由簡單的字符串數組,而不是當由對象數組的

CODE:

<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」

,然後在控制範圍

$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

可以標註在沒有做多添加tagTransform功能? – 2015-01-22 21:17:07

+0

這是值得的。是的,可以通過設置:tagging-label =「false」來完成。來源:https://github.com/angular-ui/ui-select/issues/983 – Idrees 2015-06-24 10:13:25