我使用的是ui-select而不是使用本机选择。这就是问题所在:
用户可以在位置数组中选择pick_up地址。如果没有地址,那么他可以添加新地址。我想使用 ui-select-search 输入字段来过滤选择,如果 ui-select-options 中没有搜索词,则为此添加新的 uniq 地址。有什么方法可以做到这一点吗?
这是我的代码:
<ui-select
ng-model="order.return_address"
theme="bootstrap"
tagging="order.return_address"
tagging-label="false"
reset-search-input="false"
on-select="itemSelected($select.selected)"
ng-required="isRequired"
refresh="updateValue('pick_up', $select.search)"
refresh-delay="900"
name="pick-up-location">
<ui-select-match>{{ $select.selected.title }}</ui-select-match>
<ui-select-choices repeat="address in pickUpAddresses | filter: {title: $select.search}" refresh="refreshItems($select.search)" refresh-delay="700">
{{ address.title }}
</ui-select-choices>
</ui-select>
附言我不想看到我在pickUpAddresses数组的输入字段中写入的地址。
有一种方法可以做到这一点。因此,我需要将输入字段放置在与选择相同的位置,然后添加到两个透明背景中。当您搜索时,如果您从 ui-select-options 中选择某些内容,则不会有问题。当您搜索并且 ui-select-options 中没有项目时,您将此属性添加到 ui-selectreset-search-input="false"
这将保存输入的值。现在,您只需要从输入中获取值,并且该值$select.search
,然后您在同一视图中选择和输入。此外,如果您选择某些内容,则需要重置$select.search
,如果您选择输入而不是选择,则需要重置$select.selected
。