xml2js не работает с Ionic 4 Beta и Angular 6 - PullRequest
0 голосов
/ 22 октября 2018

Я начал изучать бета-версию Angular 6 / Ionic 4 и попытался интегрировать пакет xml2js следующим образом

Я использовал следующие команды

npm install @types/xml2js --save
npm install @types/xml2js --save-dev
npm install --save stream timers

Однако, когдая запускаю проект со следующим импортом

import xml2js from 'xml2js';

, затем получаю следующую ошибку

node_modules / @ types / xml2js / index "'не имеет экспорта по умолчанию

Итак, я затем импортировал вот так

import * as xml2js from 'xml2js';

Затем я создал сервис для его использования, и проект компилируется нормально, но сервис не определен во время выполнения

Код сервиса

import { Injectable } from '@angular/core';
import * as xml2js from 'xml2js';

@Injectable({
  providedIn: 'root'
})
export class DataTransformService {


    constructor() {
    }

    public convertToJson(data: string): Object {


        console.log(data);
        console.log(xml2js);
        console.log(xml2js.parseString);

        let res;

        // setting the explicitArray option prevents an array structure
        // where every node/element is always wrapped inside an array
        // set it to true, and see for yourself what changes
        xml2js.parseString(data, { explicitArray: false }, (error, result) => {

            if (error) {
                throw new Error(error);
            } else {
                res = result;
            }

        });

        console.log(res);


        return res;

    }





}

HomePage.ts, где я использую его, но получаю неопределенный сервис

import { Component } from '@angular/core';
import {DataTransformService} from '../services/data-transform.service';


@Component({
  selector: 'app-home',
  templateUrl: 'home.page.html',
  styleUrls: ['home.page.scss'],
})
export class HomePage {




    constructor(private dataTransformService: DataTransformService) {



    }



    fileChanged(e) {

        const file = e.target.files[0];
        console.log(file);


        const fileReader = new FileReader();

        fileReader.onload = this.onFileResponse;

        fileReader.readAsText(file);


    }





    private onFileResponse(e) {



        console.log(e);
        console.log(e.target.result);

        console.log(this.dataTransformService);


        this.dataTransformService.convertToJson(e.target.result);

    }



}

Пожалуйста, сообщите Спасибо

...