在Ionic2传单中,标记是否不接受可拖动功能



在此代码中,{draggable:'true'}功能不被接受,并产生错误:

import { Component, OnInit } from '@angular/core';
import { NavController } from 'ionic-angular';
import * as Leaflet from 'leaflet';
@Component({
selector: 'page-street',
templateUrl: 'street.html'
})
export class StreetPage {
private latLng: any;
private marker: any;
private map: any;  
constructor(public navCtrl: NavController) {
}
ngOnInit(): void {
this.drawMap();
}
drawMap(): void {
let map = Leaflet.map('map');
Leaflet.tileLayer('http://{s}.tile.osm.org/{z}/{x}/{y}.png', {
maxZoom: 15
}).addTo(map);
map.locate({ setView: true});
function onLocationFound(e) {      
var radius = e.accuracy / 3;     
Leaflet.marker(e.latlng, {draggable:'true'}).addTo(map);
Leaflet.circle(e.latlng, radius).addTo(map);
}
map.on('locationfound', onLocationFound);
//alert on location error
function onLocationError(e) {
alert(e.message);
}
map.on('locationerror', onLocationError);
}   
}

有解决问题的办法吗?

更新:

{draggable:'true'}:错误

Typescript错误类型为"{draggable:string;}"的参数不是可分配给"MarkerOptions"类型的参数。财产类型"可拖动"不兼容。类型"string"不可分配给类型'布尔

{draggable: true}:错误

Typescript错误类型为"{draggable:true;}"的参数不可分配给类型为"MarkerOptions"的参数。属性"options"为类型"{draggable:true "中缺少

首先使用

{draggable:true}

这里,true是布尔值,而不是字符串形式的true。TypeScript将您的代码视为一个具有字符串属性的对象,该字符串属性不能分配给一个变量,该变量是一个具有名为"draggable"的布尔属性的对象

所需的类型还需要一个"options"属性。通过查看MarkerOptions的定义,您应该能够弄清楚应该在选项中放入什么。

你可能已经下载了一些"传单"的打字(.d.ts),这对MarkerOptions的定义过于有限。

假设你已经用这个得到了这个打字机

npm install@types/follower

Option1:找到为MarkerOptions所做的声明,然后根据您的目的进行更改,或者更改参数以匹配该定义。

选项2:在您下载的声明文件中找到"marker"函数的声明,并将第二个参数的类型从"MarkerOption"更改为"any">

最终你的index.dts应该看起来像这个

export interface MarkerOptions extends InteractiveLayerOptions {
icon?: Icon;
clickable?: boolean;
draggable?: boolean;
keyboard?: boolean;
title?: string;
alt?: string;
zIndexOffset?: number;
opacity?: number;
riseOnHover?: boolean;
riseOffset?: number;
options?: DivIconOptions;
}
export class Marker extends Layer {
constructor(latlng: LatLngExpression, options?: MarkerOptions);
getLatLng(): LatLng;
setLatLng(latlng: LatLngExpression): this;
setZIndexOffset(offset: number): this;
setIcon(icon: Icon): this;
setOpacity(opacity: number): this;
getElement(): HTMLElement;
// Properties
options: MarkerOptions;
dragging: Handler;
}

相关内容

  • 没有找到相关文章

最新更新