Я использую ionic 3 / angular 4 для анализа JSON любого XML, после 2 дней попыток я застрял в TypeError: существует не функция без способа отладки, которую я знаю.
Я уже пытался переустановить xml2json, установить версию @type, не уверен, что в моем коде что-то не так, вот ошибка:
TypeError: exists is not a function
at Function.getRoot (http://localhost:8100/build/main.js:162940:7)
at bindings (http://localhost:8100/build/main.js:162819:32)
at Object.<anonymous> (http://localhost:8100/build/main.js:183310:37)
at __webpack_require__ (http://localhost:8100/build/main.js:20:30)
at Object.<anonymous> (http://localhost:8100/build/main.js:198811:13)
at __webpack_require__ (http://localhost:8100/build/main.js:20:30)
at Object.<anonymous> (http://localhost:8100/build/main.js:198684:18)
at __webpack_require__ (http://localhost:8100/build/main.js:20:30)
at Object.<anonymous> (http://localhost:8100/build/main.js:198675:18)
at __webpack_require__ (http://localhost:8100/build/main.js:20:30)
Услуги:
import { Injectable } from '@angular/core';
import { Http } from '@angular/http';
import { ConstantsServices } from './constants.service';
import { Xml2json } from 'xml2json';
@Injectable()
export class FinanzaService {
private apiURL = this.constantsServices.apiUrl;
constructor(public http: Http, private constantsServices: ConstantsServices) {
}
// Obtengo datos del XML del mef-app eggds balance fiscal GC y SPNF
public getBalances() {
return this.http.get(`https://www.w3schools.com/xml/simple.xml`).map(res => JSON.parse(Xml2json(res.text(),' ')))
/*.map(data => {
console.log(data);
return [].concat.apply([], data);
})*/;
}
}
Файл TS:
import { Component } from '@angular/core';
import { NavController, LoadingController, AlertController } from 'ionic-angular';
import { FinanzaService } from '../../services/finanzapublica.service';
@Component({
selector: 'balances-home',
templateUrl: 'balances.html'
})
export class BalancesPage {
public titlePage: string = 'Balance Fiscal';
public loader: any;
public dataRequest: any;
constructor(public navCtrl: NavController, public loadingCtrl: LoadingController,
public alertCtrl: AlertController,
public finanzaService: FinanzaService) {
}
callService() {
this.finanzaService.getBalances().subscribe(
(companies) => {
console.log(companies);
//this.companies = companies.list.Company;
//console.log(this.companies);
});
}
};