我不太明白如何将LRM导入ts文件。通过npm install leaflet-routing-machine
安装后,我定义了路由如下:
var Routing = require('leaflet-routing-machine');
var newRoute = Routing.control({Options});
这对我没有帮助,我得到了:
Error caused by: Routing.control is not a function
以下是我的Ionic信息:
Cordova CLI: 6.4.0
Ionic Framework Version: 2.0.1
Ionic CLI Version: 2.2.1
Ionic App Lib Version: 2.2.0
Ionic App Scripts Version: 1.1.0
Node Version: v6.3.1
顺便说一句,我对传单本身没有任何问题。
5条答案
按热度按时间a9wyjsp71#
我们通过在声明组件之前添加以下行解决了这个问题。
declare var L: any;
myclass.component.ts
正如本文所提到的,typescript似乎会导致向Leaflet的全局L对象添加属性的问题,但在我们的例子中,声明any类型的L足以使其工作。
gfttwv5a2#
不确定Leaflet Routing Machine插件是否直接导出自身。
通常,它至少应该具有附加到
L
全局名称空间的副作用。在调用
require('leaflet-routing-machine')
之后,您是否尝试过使用L.routing.control
示例化控件?(注意启动L
)wtzytmuj3#
好的。怎么用!
1)
npm i leaflet-routing-machine https://www.npmjs.com/package/leaflet-routing-machine
2)
npm i leaflet-easybutton https://www.npmjs.com/package/leaflet-easybutton
3)工作页面中的导入模块:
4)声明L
declare var L:any;
添加代码内容
6)添加标签查看html
nfzehxib4#
在Ionic 4中,尝试一下。
1)npm i传单。
2)npm i leaflet-routing-machine.
3)在“index.html”中导入js和css。
4)在your_component.ts中
vojdkbi05#
一个更好的选择是为leaflet-routing-machine安装类型,而不是“将L声明为any”。
这样所有的方法和属性都将被识别。这对我来说效果好多了!