2

情况:

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

电子邮件地址可以从列表中选择,也可以重新输入。
问题是我无法创建新条目。

在文档中写道,为了输入新值,可以使用属性标记

但我不知道为什么,不和我一起工作。


编码:

(简单的新标签添加示例)

<ui-select multiple tagging tagging-label="(custom 'new' label)" ng-model="multipleDemo.colors" theme="bootstrap" ng-disabled="disabled" style="width: 300px;">

    <ui-select-match placeholder="Select colors...">{{$item}}</ui-select-match>

    <ui-select-choices repeat="color in availableColors | filter:$select.search">
        {{color}}
    </ui-select-choices>

</ui-select>


$scope.availableColors = ['Red','Green','Blue','Yellow','Magenta','Maroon','Umbra','Turquoise'];
$scope.multipleDemo = {};
$scope.multipleDemo.colors = ['Blue','Red'];


柱塞:

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

如您所见,无法插入新值。


问题:

如何在角度 ui-select 中正确插入新值?

4

2 回答 2

2

给出的 plunkers 使用 0.8.2。标记适用于 0.8.3。

于 2014-12-03T13:26:09.303 回答
1

你可以通过 jQuery 的一些技巧来做到这一点——

  1. 只需将 class 或 id 添加到 ui-select 标签。
  2. 在 Angular 控制器中按 id 和 class 添加访问权限,如下所示:

    <ui-select reset-search-input="true" ng-model="myModel.SerialNumber" theme="bootstrap"
            ng-required="true" name="SerialNumber" class="YourClass" Id="YourId">
        <ui-select-match placeholder=" {{'VehicleMaster.SerialNumber'| translate}}">
            {{$select.selected.SerialNumber}}    
        </ui-select-match>
        <ui-select-choices repeat="item in IMEISerialsDropDown | filter: $select.search">
            <div ng-bind-html="item.SerialNumber"></div>
        </ui-select-choices>
    </ui-select>        
    
    $(".YourClass").find("input.ui-select-search").on("focusout", function (val) {
        var variable = $(".YourClass").find("input.ui-select-search").val();
        if (variable .length > 0 && variable .length != null) {
            var variableJson = {
                        SerialNumber: variable ,
                    };
                    $scope.myModel.ModelProperty= variableJson;
        }
    });
    
于 2015-06-21T02:04:21.330 回答