I have a json list in a javascript file and I want to filter it in typescript before sending the array of results to the html home page. However, I got an error in the html file.
Note: I tested my code with an online typescript editor and it worked perfectly.
Javascript File list.js
var jsonList= [
{
"Answer": "Y",
dummyProp1 : 1
},
{
"Answer": "N",
dummyProp1 : 1
}];
Typescript file: home.ts
import { Component,OnInit } from '@angular/core';
import 'src/assets/list.js';
declare var list:any[];
declare var jsonlist:any[];
@Component({
selector: 'app-home',
templateUrl: 'home.page.html',
styleUrls: ['home.page.scss'],
})
export class HomePage implements OnInit {
constructor() {
}
//extract only yes answers
ngOnInit() {
function filterJson() {
return this.list.filter(e => (
(e.Answer.indexOf('Y') === 0)
))
}
var o = filterJson();
//get only Answers
for(var key in o) {
var infoJSON = o[key];
jsonlist.push(infoJSON.Answer)
}
console.log(jsonlist);
}
}
home index file:
<body>
<app-root></app-root>
<script type="text/javascript" src="src/assets/list.js"></script>
</body>
home page file: home.html
<div *ngFor="let item of jsonlist">
<ion-item>
<ion-label><b>{{item}}</b></ion-label>
</ion-item>
Error : Property 'jsonlist' does not exist on type 'HomePage'.ngtsc(2339) home.page.ts(11, 49): Error occurs in the template of component HomePage.