首页 > 解决方案 > 在 Angular js 中使用 ui-select 的文本框下拉菜单

问题描述

我正在寻找带有 angularJS 中文本框的下拉菜单。目前我正在使用标签。我也有过滤条件。不确定如何保存用户键入的值。

      <span>
            <ui-select
            ng-model="ele.test"
            theme="selectize"
            class="form-select-control select-dropdown-fixed-position"
            style="width:16em;text-align:left"
            name="test"
            ng-change="someEvent(ele)"
            ng-model-options="{ updateOn : 'default blur' }">
                <ui-select-match
                    placeholder="Test">{{$select.selected}}</ui-select-match>
                    <ui-select-choices
                            repeat="test in testList| filter: $select.search">
                        <span ng-bind-html="test | highlight: $select.search"></span>
                    </ui-select-choices>
            </ui-select>
        </span>

如果用户输入的值不是下拉列表中列出的值,我必须保存它。我尝试过使用标签,但它没有用。

任何帮助表示赞赏。

标签: angularjs

解决方案


我正在寻找允许用户在下拉列表中输入,如果用户输入的值不在列表中,则保存它。我在这里找到了以下解决方案。允许在 ui-select 中手动输入文本

   <ui-select ng-model="superhero.selected">
   <ui-select-match placeholder="Select or search a superhero ..."> 
       {{$select.selected}}</ui-select-match>
   <ui-select-choices repeat="hero in getSuperheroes($select.search) 
         |filter: $select.search">
       <div ng-bind="hero"></div>
   </ui-select-choices>
   </ui-select>

在控制器中

   $scope.getSuperheroes = function(search) {
    var newSupes = $scope.superheroes.slice();
    if (search && newSupes.indexOf(search) === -1) {
    newSupes.unshift(search);
   }
   return newSupes;
   }

推荐阅读