我正在使用 ui-select 中的选择框。一切正常,但我想允许手动输入文本,并且不想限制用户使用列表中可用的值。如果我输入文本,它会正确过滤我的列表。但是当我没有点击一个元素并移动到下一个字段时,我的文本将被丢弃。
有任何想法吗?
谢谢和问候, 亚历克斯
我不想显示我的代码,因为我认为它不正确,但有人要求它:
<ui-select ng-model="formData[field.id].selected" theme="bootstrap">
<ui-select-match placeholder="{{ lists[field.id].placeholder }}">{{$select.selected.text}}</ui-select-match>
<ui-select-choices repeat="item in lists[field.id].list | filter: $select.search">
<div ng-bind-html="item.text | highlight: $select.search"></div>
</ui-select-choices>
</ui-select>
数据存储在formData[field.id].selected
. field.id
是要显示的当前字段的编号(我正在动态生成我的表单)。只需假设它存储一个唯一的 int 值。
编辑 08.04.2015 我的解决方案: 我发现似乎没有与 C# 组合框等效的东西。所以我继续使用两个单独的字段。这不是我想要的,但它现在有效:
<ui-select ng-model="formData[field.id].selected" theme="bootstrap">
<ui-select-match placeholder="{{ lists[field.id].placeholder }}">{{$select.selected.text}}</ui-select-match>
<ui-select-choices repeat="item in lists[field.id].list | filter: $select.search">
<div ng-bind-html="item.text | highlight: $select.search"></div>
</ui-select-choices>
</ui-select>
<?php echo __('Create a new element if value is not in list'); ?>
<div class="input-group">
<span class="input-group-addon">
<input type="checkbox" ng-model="disabled[field.id]">
</span>
<input type="text" value="" ng-disabled="!disabled[field.id]" class="form-control" ng-model="formData[field.id].newValue" />
</div>