Angular 2 - ng-bootstrap 带有 formControlName 的下拉菜单
Angular 2 - ng-bootstrap dropdown with formControlName
有没有办法让 ng-bootstrap dropdown control 与 Angular 的反应形式一起工作?
鉴于:
<div ngbDropdown class="d-inline-block">
<button class="btn btn-outline-primary" id="dropdownMenu1" ngbDropdownToggle>Toggle dropdown</button>
<div class="dropdown-menu" aria-labelledby="dropdownMenu1">
<button class="dropdown-item">Action - 1</button>
<button class="dropdown-item">Another Action</button>
<button class="dropdown-item">Something else is here</button>
</div>
</div>
如何像在输入中一样使用 formControlName?
<input formControlName="name" />
很遗憾,ng-bootstrap
下拉菜单不能用作表单控件 out-of-the-box。
但是您可以创建自己的组件来用作表单控件。为此,您需要实现 ControlValueAccessor
接口。您可以在这篇文章中阅读更多内容:https://blog.thoughtram.io/angular/2016/07/27/custom-form-controls-in-angular-2.html
我使用 ng-bootstrap 制作了自定义下拉菜单,我将向您说明我是如何解决它的。
更改 按钮 以使用 input 标签打开下拉菜单。将其设置为 readonly 并在 click 上添加操作以打开 ngbDropdown (dropdown.open() in代码示例)。
为列表中的每个项目添加 click 事件以设置 formControl 值。
有没有办法让 ng-bootstrap dropdown control 与 Angular 的反应形式一起工作?
鉴于:
<div ngbDropdown class="d-inline-block">
<button class="btn btn-outline-primary" id="dropdownMenu1" ngbDropdownToggle>Toggle dropdown</button>
<div class="dropdown-menu" aria-labelledby="dropdownMenu1">
<button class="dropdown-item">Action - 1</button>
<button class="dropdown-item">Another Action</button>
<button class="dropdown-item">Something else is here</button>
</div>
</div>
如何像在输入中一样使用 formControlName?
<input formControlName="name" />
很遗憾,ng-bootstrap
下拉菜单不能用作表单控件 out-of-the-box。
但是您可以创建自己的组件来用作表单控件。为此,您需要实现 ControlValueAccessor
接口。您可以在这篇文章中阅读更多内容:https://blog.thoughtram.io/angular/2016/07/27/custom-form-controls-in-angular-2.html
我使用 ng-bootstrap 制作了自定义下拉菜单,我将向您说明我是如何解决它的。
更改 按钮 以使用 input 标签打开下拉菜单。将其设置为 readonly 并在 click 上添加操作以打开 ngbDropdown (dropdown.open() in代码示例)。 为列表中的每个项目添加 click 事件以设置 formControl 值。