如何以编程方式清除ui-select?

时间:2017-01-02 09:15:35

标签: angularjs ui-select

我想找到一种方法来清除代码选择ui-select。

例如,我有以下代码

<ui-select ng-model="selectedCustomerCode" ng-if="CustomerIds.length>1" on-select="CustomerCodeFiltersOnSelectCallback($item, $model)" theme="bootstrap">
  <ui-select-match class="ui-select-match" allow-clear="true" placeholder="Επιλογή κωδικού πελάτη...">{{$select.selected.CCode}}</ui-select-match>
  <ui-select-choices class="ui-select-choices" repeat="customer in CustomerIds | propsFilter: {CCode: $select.search}">
    <div ng-bind-html="customer.CCode | highlight: $select.search"></div>
  </ui-select-choices>
</ui-select>

我想碰上一个清除按钮并清除一些输入,包括ui-select。 清除ui-select的代码是什么?

4 个答案:

答案 0 :(得分:7)

问题已经解决了。 我不知道为什么,但只有selectedCustomerCode的ng-model无法正常工作。 我将selectedCustomerCode指定为对象:

ng-model="selectedCustomer.selectedCustomerCode"

然后我能够像这样清除它:

selectedCustomer.selectedCustomerCode = ''

如果我有

ng-model="selectedCustomerCode"

然后将其重新分配给:

selectedCustomerCode = ''

不知何故不起作用。

答案 1 :(得分:2)

您应该清除cont.selectedCustomerCode变量:

<button ng-click="cont.selectedCustomerCode = ''">clear</button>

修改

您应该考虑在变量上公开属性。这是推荐的方式。

答案 2 :(得分:1)

有一个选项allow-clear for ui-select-match为你做的事情,你将在右边有x,你可以点击它清除它。 https://github.com/angular-ui/ui-select/wiki/ui-select-match

<ui-select-match allow-clear="true" placeholder="Select or search in a list...">
  <span>{{$select.selected.name}}</span>
</ui-select-match>

工作示例http://plnkr.co/edit/DbbUE68QlNLjx97pBZ56?p=preview

答案 3 :(得分:0)

我今天使用的另一种可能的解决方案是通过向ui-select-choices重复的列表中添加一个clear元素来创建一个空状态

vm.CustomerIds.unshift({"CCode":"Select..."});