Aurelia - Diálogo
Aurelia ofrece una forma de implementar la ventana de diálogo (modal). En este capítulo, le mostraremos cómo usarlo.
Paso 1: instalar un complemento de diálogo
El complemento de diálogo se puede instalar desde command prompt ventana.
C:\Users\username\Desktop\aureliaApp>jspm install aurelia-dialog
Para que este complemento funcione, debemos utilizar el bootstrapping manual. Cubrimos esto en el capítulo Configuración. Dentromain.js archivo, necesitamos agregar el aurelia-dialog enchufar.
main.js
export function configure(aurelia) {
aurelia.use
.standardConfiguration()
.developmentLogging()
.plugin('aurelia-dialog');
aurelia.start().then(() => aurelia.setRoot());
}
Paso 2: crear carpetas y archivos
Primero, crearemos un nuevo directorio llamado modal. Pongámoslo dentro delcomponentscarpeta. Abre elcommand prompt y ejecuta el siguiente código.
C:\Users\username\Desktop\aureliaApp\src\components>mkdir modal
En esta carpeta, crearemos dos archivos nuevos. Estos archivos representaránview y view-model para nuestro modal.
C:\Users\username\Desktop\aureliaApp\src\components\modal>touch my-modal.html
C:\Users\username\Desktop\aureliaApp\src\components\modal>touch my-modal.js
Paso 3: crea un modal
Primero, agreguemos view-modelcódigo. Necesitamos importar e inyectardialog-controller. Este controlador se utiliza para manejar funcionalidades modales específicas. En el siguiente ejemplo, lo usamos para centralizar un modal horizontalmente.
my-modal.js
import {inject} from 'aurelia-framework';
import {DialogController} from 'aurelia-dialog';
@inject(DialogController)
export class Prompt {
constructor(controller) {
this.controller = controller;
this.answer = null;
controller.settings.centerHorizontalOnly = true;
}
activate(message) {
this.message = message;
}
}
los viewel código se verá así. Cuando se hace clic en los botones, se abre o se cierra el modal.
my-modal.html
<template>
<ai-dialog>
<ai-dialog-body>
<h2>${message}</h2>
</ai-dialog-body>
<ai-dialog-footer>
<button click.trigger = "controller.cancel()">Cancel</button>
<button click.trigger = "controller.ok(message)">Ok</button>
</ai-dialog-footer>
</ai-dialog>
</template>
Paso 4: activar un modal
El último paso es una función para activar nuestro modal. Necesitamos importar e inyectarDialogService. Este servicio tiene métodoopen, donde podemos pasar view-model desde my-modal archivo y model, por lo que podemos vincular dinámicamente los datos.
app.js
import {DialogService} from 'aurelia-dialog';
import {inject} from 'aurelia-framework';
import {Prompt} from './components/modal/my-modal';
@inject(DialogService)
export class App {
constructor(dialogService) {
this.dialogService = dialogService;
}
openModal() {
this.dialogService.open( {viewModel: Prompt, model: 'Are you sure?' }).then(response => {
console.log(response);
if (!response.wasCancelled) {
console.log('OK');
} else {
console.log('cancelled');
}
console.log(response.output);
});
}
};
Finalmente, crearemos un botón para que podamos llamar openModal función.
app.html
<template>
<button click.trigger = "openModal()">OPEN MODAL</button>
<template>
Si ejecutamos la aplicación, podemos hacer clic en el OPEN MODAL para activar una nueva ventana modal.