即使选项列表为空,也要启用 select?

Enable select even if options list is empty?

我正在使用 angular-chosen,默认情况下,如果源列表为空,则该元素将被禁用。有没有办法在源列表为空的情况下启用该元素?

在查看 source code 之后,我可以得出结论,这是不可能的(至少,没有 hack)。

你看,他们正在调用 disableIfEmpty 函数并且无法控制它。

他们正在观察 disabled 属性变化,当它发生变化时 - 他们会更新组件。这样做是为了与 ng-disabled 指令兼容。但是如果你想启用空 select.

它仍然帮不了你

此外,如果您手动 运行 $('[ng-model="myPets"]').removeAttr("disabled") 它不会真正帮助您,因为它们显示的不是原生 select,而是它们自己的 div<div class="chosen-container chosen-container-single chosen-disabled"...

因此,如果您真的只是想让它看起来启用 - 您可以应用此 CSS:

.chosen-disabled, .chosen-disabled * {
  opacity: unset !important;
  cursor: pointer !important;
}

或者这个 JS:

$('.chosen-disabled').removeClass('chosen-disabled')

正确的解决方案是向他们的回购提交问题或 PR:https://github.com/leocaseiro/angular-chosen