nodemon
ts-node
/* ! tailwindcss v3.2.4 | MIT License | https://tailwindcss.com */ | |
*, | |
::before, | |
::after { | |
box-sizing: border-box; | |
border-width: 0; | |
border-style: solid; | |
border-color: #e5e7eb; | |
content: ''; |
import { chromium, LaunchOptions } from 'playwright' | |
import type { Browser, BrowserContext, Page } from 'playwright' | |
/** */ | |
type UsePlaywrightCallback = (opt: { browser: Browser, ctx: BrowserContext, page: Page }) => Promise<void> | |
/** Expose a `playwright` browser, context and page to a callback that automatically close after finishing */ | |
export async function usePlaywright(cb: UsePlaywrightCallback): Promise<void> { |
<header class="counter-header"> | |
<h2>NGXS: Reactive Counter</h2> | |
</header> | |
<main class="counter-container"> | |
<h2 class="counter-number">The button has been clicked <b>{{ counter }}</b> times</h2> | |
</main> | |
<button class="counter-button" (click)="increment()"></button> |
<ion-content padding> | |
<h3 ion-text color="primary" text-center>Swipe remove directive</h3> | |
<ion-list> | |
<button ion-item *ngFor="let item of items; let i=index" (click)="onClick(item)" (swipe-remove)="removeItem($event, i)"> | |
<ion-thumbnail item-start> | |
<img src="http://placehold.it/100"> | |
</ion-thumbnail> | |
<h2>My Neighbor Totoro</h2> | |
<p>Hayao Miyazaki • 1988</p> |
Los formularios son la piedra angular
de nuestra aplicaciones, ya sean de escritorio, moviles o web, esto equivale a una interaccion entre el usuario y nuestra aplicacion, independiente de su fin, es la manera idónea con la que el usuario se puede comunicar con nuestra aplicacion.
Por consiguiente es de vital importancia validar la informacion que el usuario introduce en nuestros formularios, para evitar o prevenir posibles errores con dicha informacion. De igual manera es una excelente practica de experiencia de usuario, mostrarle o informarle al usuario que esta introduciendo un dato incorrecto o que se espera algun tipo de respuesta diferente.
Actualmente en Angular existen dos modos de validar los formularios, por modelo y por template, este ejemplo es por template o plantilla, puedes revisar el siguiente tutorial para aplicar tus validaciones en el modelo.
Los siguientes pasos son para ilustrar una maner