问题描述
我有一个自定义服务,该服务扩展了NgbDatepickerKeyboardService,并且我需要在processKey
方法中获取DateRefer的ElementRef。主要思想是获取ElementRef并从该引用中进行查询,以尝试查找第二天的div(我需要检查div是否具有一个类)。
public processKey(event: KeyboardEvent,datepicker: NgbDatepicker): void {
const state = datepicker.state;
// how to get it here? NgbDatepicker does not have any public prop to do it
}
解决方法
您不能在Services中使用ViewChild / ViewChildren,但可以使用纯JS访问DOM。您只需要声明一个“ id”属性或“类”即可从服务中指出。如果使用“ id”属性,则可以按以下方式查询:
document.getElementById('myDatePicker')
上面的句子将是组件中的一个示例:
this.myDatePickerViewChild.nativeElement
如果有几个控件,您可以使用以下命令指出它们中的一个普通类:
document.getElementsByClassName('<<your common class name>>');
通过这种方式,您可以获取所有选择器并对其进行迭代以执行您想要的操作。