使用 ui-标记单选

Using ui-tagging with single choice

我是 angularjs 和 angular-ui 的新手,我对模块 ui-select 有疑问。 我需要 select 列表中的单个元素,如果没有值,用户可以手动添加,但 ui-select 的标记系统不适用于单一值,我不知道为什么。

这是ui-select代码:

<ui-select tagging="tagStation" tagging-label="(Add station)" ng-model="new.station">
  <ui-select-match placeholder="Choose or Add">{{$select.selected.label}}</ui-select-match>
   <ui-select-choices repeat="station.value as station in stationList | filter: { label: $select.label }">
    <div ng-bind-html="station.label | highlight: $select.search"></div>
   </ui-select-choices>
 </ui-select>

这是标记属性的函数:

$scope.tagStation = function (newTag) {
            var item = {
                label: newTag,
                value: 0
            };

            return item;
        };

有人可以帮助我吗?谢谢

查看线程和我链接到 here 的特定答案。现在有一个解决方法,您可以在其中添加属性 tagging-label="false"。希望这能解决您的问题!我正在寻找一个类似的问题,但对我来说不幸的是,这种解决方法似乎无法解决我的特定问题,因为我无法获得任何自定义值。

我遇到了同样的问题,并使用 ui-select-no-choice

找到了更好的解决方法

标记和单选的问题在于它改变了下拉菜单的正常行为,例如,当您键入要搜索的内容时,它会停止 select输入第一个匹配值,这会使正常功能变差当你有另一个 select 旁边没有这个功能时,它变得更糟

使用 ui-select-no-choice 的示例:

        <ui-select ng-model="myNgModel">
            <ui-select-match placeholder="Your Placeholder">{{$select.selected}}</ui-select-match>
            <ui-select-choices repeat="item in items | filter: $select.search">
                <div ng-bind-html="item | highlight: $select.search"></div>
            </ui-select-choices>
            <ui-select-no-choice>
                    <span ng-click="addTheNewElementToList($select.search)">Add this new Item ({{$select.search}})</span>
            </ui-select-no-choice>
        </ui-select>

假设您想避免重复,并且如果列表中不存在该元素,则会出现“添加项目”选项。

它并不完美,但可以满足您的需求