Al importar el NavController a mi me funciono así:
import { NavController } from '@ionic/angular';
¿Qué es Ionic?
Requisitos del curso y presentación del proyecto
¿Qué hay de nuevo en Ionic 4?
¿Qué ha cambiado en Ionic?
Instalación de Ionic y templates básicos
Instalación de Capacitor y uso en Android Studio
Uso de Capacitor y xCode
Sincronizando nuestro proyecto con los emuladores
Componentes básicos de Ionic
El componente Slides
CSS y Custom Properties de los componentes de Ionic
Slides dinámicos
Angular Router e Ionic Storage
Controlar la navegación con Guards
Utilidades de CSS con Ionic
Crear una página de login
Validar inputs del formulario de login
Envío del formulario
Servicio para validar credenciales
Agregar Guards a nuestro login
Crear una página de registro
Navegación entre login y registro
Agregar un menú con el componente Menu
Dar funcionalidad y estilos al menú
Uso de componente Slides y opciones avanzadas
Consumo y manejo de informacion con Ionic
Consumiendo un API para llenar información de nuestros artistas
Página completa con artistas, canciones y álbums
El componente Modal y el Modal Controller
Llenar de contenido el Modal
Componente Footer y funcionalidad del Modal
Construyendo nuestro reproductor
Lógica de nuestro reproductor
RETO: Vista de álbums
Acceso al hardware
Usar la cámara a través de Capacitor
Corrección de errores y afinando detalles
Mejorando nuestra página de Settings con CSS
Página Sports y Angular Maps
Crear la página Sport
RETO: Buscador dinámico en Sports
Llevar nuestra aplicación a producción con Android
Llevar nuestra aplicación a producción con iOS y cierre del curso
Aún no tienes acceso a esta clase
Crea una cuenta y continúa viendo este curso
Aportes 10
Preguntas 4
Al importar el NavController a mi me funciono así:
import { NavController } from '@ionic/angular';
TL:DR Tal vez es mejor usar la navigación de Angular Router
import { Router } from '@angular/router';
...
this.router.navigate(['/home']);
Noto que en la documentación para Ionic 5, recomiendan que la navegación se maneje con el router de Angular.
“For apps that are built with Angular and @ionic/angular, we recommend using the Angular Router which comes out of the box for every new Ionic 4 Angular app.” Fuente
Adicionalmente en un foro de Ionic, un miembro del equipo recomienda que para navegación en apps hechas con Angular y Ionic, es mejor usar el Angular Router.
“The nav-controller isn’t slated to go away just yet, but it’s not going to be integrated into a “router”. It will essentially be used only for in-memory routing. For anything that is tied to the URL, use the angular router and its functionality.” Fuente
Algún ejemplo con una API Key ?? donde se coloca en tu caso ?
En Ionic 6 el servicio creado por el profesor funciona igual, toca realizar la integración con el backend pero eso le toca a cada uno.
Respecto al NavController en la documentación de Ionic recomiendan usar el Router, esto lo implementarían así en el archivo login.page.ts
Importar el Router
import { Router } from '@angular/router';
Inyectarlo en el constructor
constructor(private formBuilder: FormBuilder, private authenticateService: AuthenticateService, private router: Router) {
Implementar el método de autenticación
loginUser(credentials) {
this.authenticateService.loginUser(credentials).then((res) => {
this.errorMessage = '';
this.router.navigate(['/home']);
});
}
Estoy muy contento, tuve muchos errores pero pude solucionarlos, y es emocionante avanzar!!!.
Este profe es genial
Algun ejemplo funcional del uso de fetch a la hora de validar credenciales?
Inyectando el NavController desde el constructor me funcionó
Me genero una inquietud, normalmente trabajando con http se trabaja con The RxJS library - Angular, aunq se q tambn se puede trabajar con fetch q seria JavaScript Nativo, cual seria la mejor metodología???
Servicio para validar credenciales
En loginUser agregamos authService,
este tiene una función que recibe las credenciales
en caso de ser exitosa va recibir una respuesta-
indicamos que el error está vacío
y redireccionamos al usuario al home.
loginUser(credentials){
this.authService.loginUser(credentials).then(res => {
this.errorMessage = '';
this.navCtrl.navigateForward('/home');
});
Inyectamos en el constructor el formulario de autenticación, lo importamos tambien.
private authService: AuthenticateService
Definimos las variables errorString
errorMessage: string = '';
y navigationControl.
En vez de routing usamos NavControler, tenemos que inyectarlo e importarlo
private navCtrl: NavController
Providers
Los providers operan como servicios
ionic generate service services/authenticate
Esto nos va generar el servicio authenticate.
En el authenticate
Cuando hacemos una petición http esta nos retorna un observable o promesa
Hacemos una promesa manual con dos métodos, accept y reject.
Validamos las credenciales.
Si es true aceptamos la petición y sino la rechazamos.
loginUser(credential) {
return new Promise((accept, reject) => {
if (
credential.email === '[email protected]' &&
credential.password === '12345'
){
accept('Login Correcto');
} else {
reject('Login Incorrecto');
}
});
}
En caso que tengamos una URL usamos fetch.
Ayuda bastante para tener buenas animaciones entre transiciones entre pantallas.
¿Quieres ver más aportes, preguntas y respuestas de la comunidad? Crea una cuenta o inicia sesión.