如何解决leaflet在popup中使用el-date-picker不生效
时间: 2023-07-25 09:39:14 浏览: 180
在使用leaflet中的popup中嵌入el-date-picker时,由于popup是在地图容器之外渲染的,需要对el-date-picker进行一些特殊的处理才能使其正常工作。
一种解决方法是,在popup中使用Vue的mounted生命周期钩子手动初始化el-date-picker。具体步骤如下:
1. 在popup的内容中添加一个id,用于在mounted钩子中获取el-date-picker实例。
```javascript
L.marker([51.5, -0.09])
.bindPopup('<div id="datepicker-popup"><el-date-picker v-model="date"></el-date-picker></div>')
.addTo(map);
```
2. 在Vue的mounted钩子中手动初始化el-date-picker,并将其挂载到popup的id上。
```javascript
new Vue({
el: '#datepicker-popup',
data: {
date: ''
},
mounted() {
const el = this.$el.querySelector('.el-date-picker');
const datePicker = new window.Vue({
el,
data: {
value: null
},
components: {
'el-date-picker': window.ElementUI.DatePicker
},
mounted() {
this.$emit('input', this.value);
}
});
datePicker.$on('input', value => {
this.date = value;
});
}
});
```
这样,el-date-picker就可以在leaflet的popup中正常工作了。
阅读全文