I need your help. In my app I want to display an array with *ngFor. My array is composed by a name field and a field that contain a variable with the base64 of an image. That variable is generated with Camanjs that makes async result.
import { Component, NgZone } from '@angular/core';
import { NavController, NavParams, AlertController } from 'ionic-angular';
import { HomePage } from '../home/home';
declare var Caman: any;
@Component({
selector: 'page-filtri',
templateUrl: 'filtri.html'
})
export class FiltriPage {
filtri = [];
vintage: any;
lomo: any;
constructor(public navCtrl: NavController, public navParams: NavParams, alertCtrl: AlertController, public zone: NgZone) {
this.filtri = [
{
nome: "Vintage",
base: this.vintage,
},
{
nome: "Lomo",
base: this.lomo,
}
];
}
ionViewDidLoad(){
this.vintageFilter();
this.lomoFilter();
}
vintageFilter(){
let scope = this;
Caman("#image", function () {
this.revert();
this.vintage();
this.render(function () {
scope.vintage = this.toBase64();
});
});
}
lomoFilter(){
let scope = this;
Caman("#image", function () {
this.revert();
this.lomo();
this.render(function () {
scope.lomo = this.toBase64();
});
});
}
}
… I delete some irrelevant stuff from my code.
I can display the “nome” from my array but not “base”.
I’m pretty sure that is something about promises but how can I solve this?