He estado buscando una solución a este problema que tengo, pero no he encontrado nada que funcione para mi caso particular. Estoy trabajando en una aplicación Ionic 2 y estoy trabajando en algunas cosas de autenticación para mi pantalla de inicio de sesión. El propósito de este archivo es agregar funcionalidad de back-end al código de front-end que escribí (consulte mi archivo login.html en el enlace de github a continuación). Estaba siguiendo el tutorial en este sitio web: https://devdactic.com/login-ionic-2/
El problema que tengo es que para ciertas funciones, que estarán marcadas en mi código, obtengo una "Promesa devuelta por (función) ignorada" que impide que el código funcione por completo. No aparece como un error de compilación, sino que es un error de tiempo de ejecución que es:
Error de tiempo de ejecución no detectado (en promesa): Error: ¡No hay proveedor para Http! Error en d
Realmente no estoy seguro de lo que esto significa, por lo que cualquier idea sería muy útil. Si es necesario, puedo proporcionar una imagen del error completo.
@IonicPage() @Component({ selector: 'page-login', templateUrl: 'login.html', }) export class LoginPage { loading: Loading; registerCredentials = { email: '', password: ''}; constructor(public navCtrl: NavController, private auth: AuthService, public navParams: NavParams, private alertCtrl: AlertController, private loadingCtrl: LoadingController) {} public createAccount() { this.navCtrl.push('RegisterPage'); //Promise ignored error } public login() { this.showLoading(); this.auth.login(this.registerCredentials).subscribe(allowed => { if (allowed) { this.navCtrl.setRoot('HomePage'); //Promise ignored error } else { this.showError("Access Denied"); } }, error => { this.showError(error); }); } showLoading() { this.loading = this.loadingCtrl.create({ content: 'Please wait...', dismissOnPageChange: true }); this.loading.present(); //Promise ignored error } showError(text) { this.loading.dismiss(); //Promise ignored error let alert = this.alertCtrl.create({ title: 'Fail', subTitle: text, buttons: ['OK'] }); alert.present(prompt); //Promise ignored error } }Simplemente no estoy seguro de qué está causando este problema, y está causando que mi código se bloquee por completo y ni siquiera cargará mi interfaz de usuario. Si necesita ver algunos de los otros archivos, el resto está en mi github, este archivo en particular se encuentra en /src/pages/login .
El resto de los archivos: https://github.com/jparr721/Badmeat/tree/master/BadMeat-Ionic/FirstBuild/src
Probablemente ya lo haya descubierto, pero intente cambiar el público a privado en su código aquí:
constructor(public navCtrl: NavController,tratar:
constructor(private navCtrl: NavController,No estoy seguro de si esto solucionará su problema, pero intente agregar lo siguiente a su archivo app.module.ts
import { HttpModule } from '@angular/http';puede corregir el error de su proveedor http, también tendrá que agregarlo a las importaciones en el mismo archivo
imports: [ BrowserModule, HttpModule, CloudModule.forRoot(cloudSettings), IonicModule.forRoot(MyApp), IonicStorageModule.forRoot() ],