Modal Controller Error in provider


#1

Hello i have an error to open modal in a provider.
i attempted to open a modal in my provider with the next code:

let mapaModal = this.modalCtrl.create(HomePage);
mapaModal.present();

I already insert de Provider in app.module.ts, but when i run the application give mi this error:

if i remove this line of code the application works.
But why?


#2

What does your HomePage controller look like?


#3

my home page calls to a function of my Provider. This function attempts to open a modal page, but throws these error.

this si the Provider code:

if i comment the line:
this.modalCtrl.create(HomePage,{coords:scanData.info}).present();
the application works but i cant open the modal.

Sorry for my bad english and thanks for help.


#4

This is my home.ts:

this is the final part of the file

the error looks like i cant use a modalController in a provider to push a modal page .


#5

The issue will be with HomePage itself based on the error message. Have you added HistorialProvider to your providers list?


#6

Yes, i added the HistorialProvider to my providers list:

And the Provider works whithout these line that i said… I dont understand.


#7

I suspect you have a circular dependency. I consider it broken design to access view layer things (like modals) from providers, but I realize that this may not be a particularly mainstream opinion. It does, however, protect one from such problems.


#8

Thanks but, it is a course and i follow instructions. I change my code to access Modal from component, no from provider.


#9

Hello, I do not know if it help you. I had the same error, I checked it and found this line:
import {ModalController} from “ionic-Angular”;
change for:
import {ModalController} from “ionic-angular”;

It’s solved.