Documentos de Académico
Documentos de Profesional
Documentos de Cultura
UNIDAD Nº I
PRINCIPIOS BASICOS DE ANGULAR 2 E Ionic Framework
E instalación de software requeridos para el desarrollo
www.iplacex.cl
SEMANA 2
Introducción
www.iplacex.cl 2
Ideas Fuerza
www.iplacex.cl 3
Desarrollo
9. Estructura de un Proyecto en Ionic
Cuando creamos por primera vez un proyecto en Ionic, tendremos una estructura de
proyecto como la siguiente:
www.iplacex.cl 4
En esta carpeta no deberías editar nada, puesto que los cambios se aplicarán la próxima
vez que se compile el proyecto para su visualización a través del navegador, o al hacer
el build. Se debe editar lo necesario en la carpeta "src". En este sentido un error típico
es editar cualquier archivo, como el index.html, de la carpeta www y cuando vas a
visualizar los cambios encuentras que no se ha modificado nada. Es debido a que el
índex.html de la carpeta "src" es el que se toma como punto de partida para producir el
index.html de www y en la operación de build (o al hacer "ionic serve") tus cambios se
habrán compilado.
Directorio Assets
En esa carpeta tenemos que colocar iconos que deben cumplir unos requisitos, dado
que se van a producir también internamente en diversos tamaños de manera automática
por Ionic, para generar todas las variantes de iconos que necesita cada sistema operativo
de destino. Soporta archivos en png o incluso psd.
Carpeta node_modules
Componentes
www.iplacex.cl 5
Este es exactamente el mismo modelo que Ionic usa para generar su biblioteca de
componentes. De hecho, no hay nada que le impida extender su aplicación Ionic para
usar sus propios componentes personalizados.
www.iplacex.cl 6
Finalmente, esta clase de ejemplo tiene un método público de sayMyName que escribirá
una cadena en la consola. A medida que trabaje más con Ionic y Angular 2, este nuevo
método de creación de componentes y páginas se volverá más familiar y natural para
usted.
Para poder crear una ruta en nuestro proyecto debemos ingresar el comando en nuestro
terminal ionic:
INPUTS
<current-user [user]="currentUser"></current-user>
Así es como los componentes de Ionic también funcionan. Pasaremos los datos y
parámetros de configuración utilizando el mismo sistema que este ejemplo.
TEMPLATES
Las plantillas son fragmentos HTML que Angular combina con elementos y atributos
específicos para generar el contenido dinámico. En su mayor parte, el sistema de
plantillas en Angular no cambió tanto.
www.iplacex.cl 7
{} Rendering
<div>
Hello, my name is {{name}}.
</div>
[] Binding properties
Cuando un componente necesita resolver y enlazar una variable, Angular utiliza ahora la
sintaxis []. Nos referimos a esto anteriormente en este capítulo cuando cubrimos las
entradas.
<card-header [themeColor]="currentColor"></card-header>
( ): Event handling
<my-component (click)="onUserClick($event)"></my-component>
<input [(ngModel)]="userName">
www.iplacex.cl 8
*: The asterisk
El uso del asterisco antes de ciertas directivas le dice a Angular que trate nuestra plantilla
de una manera especial. En lugar de representar la plantilla tal cual, primero le aplicará
la directiva Angular. Por ejemplo, ngFor toma nuestro <my-component> y lo sella para
cada elemento de los elementos, pero nunca representa nuestra inicial <my-component>
ya que es una plantilla:
Events
@Component(...)
class MyComponent {
clicked() {
}
}
Además, los eventos en Angular se comportan como eventos DOM normales. Pueden
burbujear hacia arriba y propagarse hacia abajo.
<button (click)="clicked($event)"></button>
@Component(...)
class MyComponent {
clicked(event) {
}
}
www.iplacex.cl 9
Eventos Custom
// ...
this.userDataUpdated.emit(this.user);
}
}
Cuando queremos activar la difusión del evento, simplemente llama al método de emisión
en el tipo de evento personalizado e incluye cualquier parámetro que se transmita con el
evento.
Ahora, cuando usamos este componente en otra parte de nuestra aplicación, podemos
vincular el evento que emite el perfil de usuario:
<user-profile (userDataUpdated)="userProfileUpdated($event)"></user-profile>
www.iplacex.cl 10
Ciclo de vida de los eventos
Tanto la aplicación Angular como sus componentes ofrecen ganchos de ciclo de vida
que dan a los desarrolladores acceso a cada uno de los pasos críticos a medida que se
producen. Estos eventos generalmente están relacionados con su creación a, su
representación y su destrucción.
NgModule
Este módulo es usado a su vez por el archivo main.ts para realizar el bootstrapping
actual:
platform.bootstrapModule(AppModule);
www.iplacex.cl 11
Este código de ejemplo inicializa la plataforma en la que se ejecuta su aplicación y, a
continuación, utiliza la plataforma para iniciar su App Module. Las plantillas Ionic Starter
generarán los módulos necesarios para usted.
Otra ventaja de este sistema es que nos permite utilizar el compilador Ahead of Time
(AoT), que proporciona aplicaciones mucho más rápidas.
Angular proporciona el evento ngOnInit para manejar esta necesidad de esperar hasta
que la inicialización del componente sea realmente completa. Nuestro componente
puede esperar a que este método sea activado por el marco. Entonces todas nuestras
propiedades se resuelven y están disponibles para ser utilizadas por el componente.
www.iplacex.cl 12
10. Ciclo de Vida de los Eventos de los Componentes
Viendo más allá de ngOnInit, hay varios otros eventos del ciclo de vida para un
componente:
• ngOnDestroy
• ngDoCheck
• ngOnChanges(changes)
Este método se llama cuando uno de los enlaces del componente ha cambiado
durante el ciclo de comprobación. El parámetro del método será un objeto en el
formato:
www.iplacex.cl 13
{
'prop': PropertyUpdate
}
• ngAfterContentInit()
• ngAfterContentChecked()
Este método se llama después de Angular comprueba los enlaces del contenido
externo que proyectó en su vista.
www.iplacex.cl 14
11. Eventos en Ionic
Aunque puede utilizar los eventos Angular descritos, se recomienda utilizar los eventos
Ionic en su lugar. La siguiente tabla muestra la descripción de sus desencadenadores.
Evento Descripción
ionViewCanEnter Se ejecuta antes de que la vista pueda entrar. Esto se puede usar
como una especie de «guardia» en vistas autenticadas donde
necesita verificar los permisos antes de que la vista pueda ingresar.
ionViewCanLeave Se ejecuta antes de que la vista pueda salir. Esto se puede usar
como una especie de «guardia» en vistas autenticadas donde
necesita verificar los permisos antes de que la vista pueda salir.
www.iplacex.cl 15
12. Componentes de Ionic Framework
Creating: Una hoja de acción puede ser creada por el Action Sheet Controller de una
matriz de buttons, con cada botón incluyendo propiedades para su text, y opcionalmente
a handler y role. Si regresa un controlador false, la hoja de acción no se descartará. Una
hoja de acción también puede tener opcionalmente un title, subTitle un icon.
Buttons: La propiedad role de un botón puede ser destructive o cancel. Los botones sin
un rol de propiedad se cargarán en la parte inferior, sin importar donde se encuentre en
el array. Todos los demás botones se mostrarán en el orden en que se agregaron a la
raíz de buttons. Se recomienda que la propiedad destructive del botón sea siempre el
primer botón de la matriz por el botón superior, además, si la hoja de acción se descarta
tocando el fondo, se activara el controlador desde el botón con el rol de cancelar.
Propiedades
Animated
Atributo Animated
Tipo boolean
Defecto True
backdropDismiss
Atributo backdrop-dismiss
Tipo boolean
www.iplacex.cl 16
Defecto True
buttons
Tipo array
Defecto []
cssClass
Atributo css-class
www.iplacex.cl 17
checked
Attribute Checked
Type Boolean
Default False
ion-card: las tarjetas son una pieza estándar que sirve como un punto de entrada para
una información más detallada. Una tarjeta puede ser un solo componente, pero a
menudo está arriba del header, título, subtítulo, y el content. ion-card se divide entre sub-
componentes para reflejar esto.
Propiedades
Button
Attribute button
Type Boolean
Default False
www.iplacex.cl 18
Color
Attribute Color
disabled
Attribute disabled
Type Boolean
Default False
www.iplacex.cl 19
href
renderizado.
Attribute Href
Mode
Attribute mode
www.iplacex.cl 20
rel
Attribute rel
routerDirection
Attribute Router-direction
Default ‘forward’
www.iplacex.cl 21
target
Attribute Target
Type
Attribute Type
Default ‘button’
www.iplacex.cl 22
Propiedades
color
Atributo Color
forceOverscroll
Atributo force-overscroll
www.iplacex.cl 23
fullscreen
Atributo fullscreen
Tipo boolean
Defecto false
scrollEvents
Atributo scroll-events
Tipo boolean
Defecto false
www.iplacex.cl 24
scrollX
Atributo scroll-x
Tipo boolean
Defecto false
scrollY
Atributo scroll-y
Tipo boolean
Defecto true
www.iplacex.cl 25
Eventos
Nombre Descripción
Métodos
getScrollElement
Descripción Obtenga el elemento donde tiene lugar el desplazamiento real. Este elemento
se puede usar para suscribirse a scrolleventos o modificar manualmente
scrollTop. Sin embargo, se recomienda utilizar la API proporcionada por ion-
content, es decir, utilizando ionScroll, ionScrollStart, ionScrollEnd para
desplazarse eventos y scrollToPoint() para desplazar el contenido a un cierto
punto.
www.iplacex.cl 26
scrollByPoint
scrollToBottom
scrollToPoint
www.iplacex.cl 27
scrollToTop
www.iplacex.cl 28
Conclusión
En esta semana vimos cómo podemos crear las vistas necesarias para nuestra
aplicación, donde podremos navegar y probar la vista en distintas plataformas.
Junto a ello las herramientas como Angular son un gran aliado para facilitar la creación
y maquetación de nuestro proyecto, TypeScript nos permite una programación orientada
a objetos de nuestra aplicación para su posterior compilación a JavaScript.
www.iplacex.cl 29
Bibliografía
Max Lynch, Ben Sperry y Adam Bradley. (2013). Ionic. Sitio web:
https://ionicframework.com/
www.iplacex.cl 30
www.iplacex.cl 31