在Angularjs-chosen中选择模型时禁用重新选择

时间:2019-04-14 19:07:30

标签: javascript angularjs jquery-chosen angular-chosen

在以下情况下我需要帮助:

我在表格中使用单选下拉菜单。每行都有自己的下拉菜单。 现在有2个用于更改选择的选项:

  1. 单击取消选择('x')图标(可以正常操作-通过ng-change)。

  2. 打开下拉菜单,从列表中选择另一个值。覆盖先前的值(尽管ng-change会触发,但我无法知道它是新值还是覆盖值)。

我希望禁用第二种行为。是否可以“告诉”选择一个值,重新选择一个新值的唯一方法是单击“ x”? 例如:一旦选择了值,请禁用下拉菜单,隐藏“箭头”图标,但保持“ x”取消选择图标处于活动状态?

<select chosen
                            allow-single-deselect="true"
                            placeholder-text-single="'Select'
                            ng-model="row.userSelection"
                            ng-options="field as field.name for field in vm.fields">
                        <option value=""></option>
                    </select>

谢谢。

1 个答案:

答案 0 :(得分:0)

添加ng-disabled =“ $ ctrl.model”将禁用选择,直到“ x”清除$ ctrl.model。清除后,将重新启用选择并可以进行新选择。

快速浏览后,我唯一想到的就是将ng-options转换为,并在实际的option元素上使用ng-disabled。该文档说,您可以隐藏禁用的选项,因此,例如,如果要选择OPTION1并且OPTION [2-4]被禁用,则将从列表中将其删除。

我找到了1.0版本的插件,但它不起作用。使选项变为混乱的选项仍然显示在列表中,尽管在您选择它们​​时使它们变得不确定。也许已更新了一个较新的版本以实际将其删除。