0

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

4

1 回答 1

0

查看源代码后,我可以得出结论,这是不可能的(至少,没有黑客)。

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

他们正在观察disabled属性的变化,当它发生变化时——他们会更新组件。ng-disabled这样做是为了与指令兼容。但是,如果您想启用空选择,它仍然无济于事。

此外,如果您手动运行$('[ng-model="myPets"]').removeAttr("disabled")它并不会真正帮助您,因为它们没有显示本机选择,而是他们自己的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

于 2020-05-15T08:08:04.090 回答