Я начал изучать бета-версию 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);
}
}
Пожалуйста, сообщите Спасибо