Creación de un asistente
Puede crear un asistente nuevo para la aplicación utilizando los componentes que se explican en este tema.
El asistente es una pantalla que tiene un conjunto de páginas y la navegación entre las páginas está predefinida. Una pantalla de asistente es un contenedor de pila para páginas de asistente.
| Componente | Descripción |
|---|---|
<wizard_name>-wizard.tpl.html |
El archivo HTML principal para el asistente. |
<wizard_name>-wizard.config.js |
Archivo de configuración para el direccionamiento y otra configuración necesaria para el asistente. |
<wizard_name_init>.tpl.html |
El archivo HTML principal para la inicialización del asistente |
<wizard_name_init>.controller.js |
El archivo JS del controlador para la lógica de inicialización del asistente |
<wizard_name_finish>.tpl.html |
El archivo HTML principal para la pantalla de finalización del asistente. |
<wizard_name_finish>.controller.js |
El JS de controlador para la lógica de finalización del asistente. |
<wizard_page_name>.scss |
Estilo para la página del asistente utilizando el formato SCSS. |
<wizard_page_name>_mashups.xml |
Definiciones de mashup para los mashups utilizados en las páginas del asistente. |
<wizard_page_name>.tpl.html |
El archivo HTML principal para una página del asistente. |
<wizard_page_partial>.tpl.html |
Los archivos HTML parciales para una página del asistente, si es necesario |
<wizard_page_name>.controller.js |
El archivo JS del controlador que tiene la lógica de comportamiento para una página del asistente. |
HTMLs de asistente
<wizard_name>-wizard.tpl.html es el archivo HTML principal que hace referencia a las páginas init , finish y wizard del asistente tal como se muestra en el siguiente fragmento de código:<isc-wizard custom-transition="true" wizard-init-controller="myWizardInitController"
wizard-init-template-url="myWizardInitTpl.html"
wizard-finish-controller="myWizardFinishController"
wizard-finish-template-url="myWizardFinishTpl.html">
<isc-wizard-page page-id="myPage1" page-enter-action="myPage1ActionBundleKey"
template-url="mypage1.html" controller="mypage1controller"></isc-wizard-page>
<isc-wizard-page page-id="myPage2" page-enter-action="myPage2ActionBundleKey"
template-url="mypage2.html" controller="mypage2controller"></isc-wizard-page>
</isc-wizard>Página de inicialización del asistente
- Cualquier validación o lógica que deba ejecutarse como parte de la inicialización del asistente debe realizarse en la página
initdel asistente. - La implementación para la página
initdel asistente es la misma que para las páginas del asistente.
Página de finalización del asistente
- Cualquier validación o lógica que deba ejecutarse como parte de la finalización del asistente debe realizarse en la página
finishdel asistente. - La implementación para la página
finishdel asistente es la misma que para las páginas del asistente.
HTML de página de asistente
La parte de la interfaz de usuario de una página del asistente se implementa utilizando un único archivo HTML (<wizard_page_name>.tpl.html) o varios archivos HTML. Puede dividir la interfaz de usuario de pantalla en varias secciones y tener HTMLs parciales (<wizard_page_partial>.tpl.html) para cada sección. Esto facilita la gestión de todo el código HTML necesario para la interfaz de usuario.
Configuración del asistente
La configuración del asistente es la misma que la configuración de pantalla. La configuración de direccionamiento se registra en el archivo<wizard_name>-wizard.config.js tal como se muestra en el siguiente fragmento de código:angular.module('store').config(['iscStateProvider',
function(iscStateProvider) {
iscStateProvider.state('<state_name/wizard_name>',{
templateUrl : '<path to <wizard_name>-wizard.tpl.html>',
addToHistory :false|true, // when true adds to state history. Default is true
resourceId : '<resource_permission_id>'//If user has permission to the resource, then only the wizard can be accessed by the user. be accessed by the user.
})
}
]);Controlador de página de asistente ( init y controlador de finish )
| Componente | Descripción |
|---|---|
model |
Un objeto JSON que consta de modelos que se pueden utilizar para almacenar datos de fondo como, por ejemplo, la salida de API. Por ejemplo, "orderList":{} podría utilizarse para almacenar la salida de la API de getOrderList . |
mashupRefs |
Una matriz de objetos mashupref. |
ui |
Objeto JSON que contiene las propiedades de la interfaz de usuario. Se añade a $scope y se hace referencia a él como $scope.ui |
ui<method> |
Métodos que se pueden invocar desde sucesos HTML.
|
Helper methods |
Los métodos sin ui como prefijo se tratan como métodos ayudantes y no se accede a ellos utilizando el objeto $scope . |
Private methods |
Los métodos con _ como prefijo se tratan como métodos privados y no se accede a ellos utilizando el objeto $scope . |
initialize |
Este método es el punto de entrada para la lógica de ejecución. Cualquier llamada de mashup o API que necesite la lógica init debe codificarse en este método. |
this' para acceder a los atributos de objeto de control.- Invoque mashups para captar y persistir datos.
- Defina modelos para contener los datos captados por mashups.
- Enlazar controles de interfaz de usuario a los modelos.
iscWizard.initializeWizardPage($scope,{<implementation
logic>}); para inicializar la lógica de comportamiento de página del asistente en el objeto $scope . Consulte los ejemplos de código del controlador del asistente en <wscdev.war>/ngstore/store/views/samples.Mashups para el asistente
- Todos los mashups a los que se hace referencia en una pantalla deben definirse como
<wizard_name>_mashups.xml. - Los mashups comunes definidos a nivel de aplicación se pueden utilizar entre pantallas.
- Los Mashups definidos para una pantalla, para un escenario determinado, no se deben utilizar en otras pantallas.
Consulte el tema Mashups para obtener más información.
Navegación entre páginas del asistente
- Para iniciar el asistente desde la página
initdel asistente, utiliceiscWizard.startWizard()whencustom-transition="false"yiscWizard.startCustomWizard(pageId,pageInput,pageOptions)whencustom-transition="true".Cuando se establece
custom-transition="true"para el asistente en el archivo<wizard_name>-wizard.tpl.html, el asistente funciona en modalidad de transición personalizada, donde en la página actual es necesario abrir la página siguiente. Por ejemplo:iscWizard.gotoCustomPage(pageId,pageInput,pageOptions);Cuando se establece
custom-transition="false"para el asistente en el archivotpl.html, el asistente funciona en modalidad estándar, donde en la página actual es necesario llamar aiscWizard.gotoNextPage(); - Para retroceder, utilice
iscWizardPage.gotoPreviousPage(); - Para finalizar el asistente desde las páginas del asistente, utilice
iscWizard.finishWizard(); - Para cerrar el asistente entre el flujo, utilice
iscWizard.closeWizard(); - Para almacenar los datos a nivel de asistente, utilice
iscWizard.setWizardContext(key,value);y para recuperar los datos a nivel de asistente, utiliceiscWizard.getWizardContext(key);. - Para obtener las entradas de la página del asistente, utilice
iscWizard.getWizardPageInput();
Estilo de asistente
El estilo del asistente se implementa en un archivo SCSS. Cada página debe tener su propio archivo SCSS.
Implementación de ejemplo
Puede consultar los archivos de ejemplo en la carpeta <wscdev.war>/ngstore/store/views/samples/wizard para obtener una mejor comprensión.