2017-02-22 19 views
0

Я не совсем понимаю, как импортировать LRM в файл ts. После установки с помощью npm install leaflet-routing-machine, я определил маршрутизации, как это:Как импортировать листовую машину-маршрутизацию в проект Ionic2?

var Routing = require('leaflet-routing-machine'); 
var newRoute = Routing.control({Options}); 

, который не помог мне, и я получил:

Error caused by: Routing.control is not a function 

Вот моя Ионные информация:

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 

BTW, У меня нет никаких проблем с самим листом.

ответ

0

Не уверен, что Leaflet Routing Machine плагин напрямую экспортирует себя.

Обычно он должен по меньшей мере иметь побочный эффект присоединения к глобальному пространству имен L.

После звонка require('leaflet-routing-machine'), вы пытались создать экземпляр элемента управления с помощью L.routing.control? (обратите внимание на запуск L)

+0

Да, я получил эту ошибку: 'Property 'routing' не существует в типе typeof L'.' –

1

Мы решили эту проблему, добавив следующую строку перед объявлением нашего компонента.

declare var L: any;

myclass.component.ts

import { Component, OnInit } from '@angular/core'; 
... 

// Leaflet and Leaflet Routing Machine have been installed with npm 
import 'leaflet-routing-machine'; 
import 'leaflet-easybutton'; 

// Add this line to remove typescript errors 
declare var L: any; 

@Component({ 
    ... 
}) 
export class MyClass extends OnInit { 
    ... 

    constructor(...) { 
    ... 
    } 

    ngOnInit() { 

    ... 

    // The example snippet is now working 
    L.Routing.control({ 
     waypoints: [ 
     L.latLng(57.74, 11.94), 
     L.latLng(57.6792, 11.949) 
     ] 
    }).addTo(myMap); 

    ... 

    } 

    ... 

} 

Как уже упоминалось в this post, машинопись, кажется, вызывает проблемы, чтобы добавить свойства глобального объекта L листовка, но в нашем случае объявление L типа было достаточно, чтобы заставить его работать.

Смежные вопросы