在自定义组件中包装 ng-bootstrap datepicker

Wrapping ng-bootstrap datepicker in custom component

我们正在使用 ng-bootstrap 组件库 Angular 2.

我们希望将 ngb-datepicker 包裹在新组件中的不同选择器下。这样它就可以在需要时与另一个日期选择器交换。

基本上,我们想使用, <custom-datepicker> 而不是 <ngb-datepicker> 该组件将具有相同的输入集。

完成此操作的一种方法是将 保留在自定义组件中。并传递来自组件的输入。

@Component({
selector: 'custom-datepicker',
template: '<uib-datepicker ...pass the inputs here ></uib-datepicker>',
})

有没有更好的方法来实现这个?

您需要实施 ControlValueAccessor 才能将 [(ngModel)] 与您的自定义日期选择器一起使用。您可以找到很多教程,尝试找到一个不太旧的教程(> 2016 年 8 月),因为它自测试版以来已经发生了很大变化。

然后,您需要定义您的自定义组件需要如何反应,然后将您需要的所有内容绑定到内部控件(在您的例子中是 uib-datepicker)。

这意味着:

  • Input() 用于在调用自定义组件时要参数化的内容
  • 当您从内部控件捕获事件时发出的 Output() 事件发射器