即使选项列表为空,也要启用 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
我正在使用 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