【发布时间】:2021-05-10 08:01:08
【问题描述】:
老实说,我已经为此绞尽脑汁了几天。我对 lit-element 和一般的 Web 组件非常陌生。
基本上,我正在构建一个名为 <date-picker> 的新组件,它使用 Flatpickr 插件。此日期选择器组件导入另一个名为 <textfield> 的组件。该组件内部有一个带有输入字段和图标的包装器(.date-picker)。我需要能够访问包装器,以便可以单击输入字段和图标来触发日历弹出窗口。但是无论我做什么,我都无法访问组件内的那些 dom 元素。我尝试使用 this.shadowRoot.querySelector('.date-picker') 以及 light dom document.querySelector('.date-picker') 以及其他各种方式访问它们。下面的示例代码。感谢您提供的任何见解。
日期选择器组件:
render() {
return html`
<textfield iconalt="Calendar" iconname="calendar" label="Calendar" optionaltext="hide"></textfield>
`;
}
updated() {
var datePickerShadow = this.shadowRoot.querySelector('.date-picker'); // gets el in shadow dom
var datePickerLight = document.querySelector('.date-picker'); // gets el in light dom
var importantDate = [Date.parse('2021-1-27'), Date.parse('2021-1-5'), Date.parse('2021-2-9')];
var datePicker = flatpickr(datePickerLight, {
wrap: true,
disable: ["2021-01-30", "2021-01-21", "2021-01-08", new Date(2025, 4, 9) ],
allowInput: true,
clickOpens: false,
})
}
【问题讨论】:
标签: javascript web components lit-element flatpickr