如何解决移动应用中的导航问题?

时间:2019-06-14 23:15:11

标签: nativescript-angular

我有一个使用各种组件(视图)的应用程序,该组件中有显示其他组件的按钮,或者显示一组按钮,没有交互服务或其他形式的数据库交互。在大多数情况下,所有过程流体都流动良好,但是一次,这些组件不会按预期进行反应,并会阻塞或持续数秒钟进行反应。

这是我的app-routing.ts模块:

import { NgModule } from "@angular/core";
import { NativeScriptRouterModule } from "nativescript-angular/router";
import { Routes, PreloadAllModules } from "@angular/router";

import { HomeComponent } from "./home/home.component";
import {MesasComponent} from "./mesas/mesas.component";
//import {ComandaComponent} from "./comanda/comanda.component";
//import { ModificadoresComponent } from "./comanda/modificadores.component";
//import { LoginComponent } from "./login/login.component";
import { NOrdenComponent } from "./orden/nueva.component";
import { MeserosComponent } from "./meseros/meseros.component";
import { ComensalesComponent } from "./comensales/comensales.component";
import { ProdLComponent } from "./productoLibre/prodlibre.component";
import { RazonesComponent } from "./razonesCancela/razonDetC.component";


const routes: Routes = [
    {
        path: "", redirectTo: "/login", pathMatch: "full",

    },
    {
       path: "login", loadChildren: "./login/login.module#LoginModule"
      //  path: "login", component: LoginComponent,
    },
    {
        path: "mesas", loadChildren: "./mesas/mesas.module#MesasModule"

       //  path: "mesas", component: MesasComponent,

    },
    {
       //   path: "home",    loadChildren: "./home/home.module#HomeModule"
         path: "home", component: HomeComponent,
    },
    {
        path: "comanda", loadChildren: "./comanda/comanda.module#ComandaModule"
        //  path: "comanda", component: ComandaComponent,
    },
    {
           path: "subP-Mod",   loadChildren:  "./comanda/modificadores.module#ModificadoresModule"

        //path: "subP-Mod", component: ModificadoresComponent,
    },
    {
         //  path: "nOrden", loadChildren: "./orden/nueva.module#NuevaModule"
        path: "nOrden", component: NOrdenComponent
    },
    {
        // path: "meseros",  loadChildren: "./meseros/meseros.module#MeserosModule"
        path: "meseros", component: MeserosComponent
    },
    {
        // path: "comensales", loadChildren:  "./comensales/comensales.module#ComensalesModule"
        path: "comensales", component: ComensalesComponent
    },
    {
        //path: "prodlibre",  loadChildren:  "./productoLibre/prodlibre.module#ProdLModule"
        path: "prodlibre", component: ProdLComponent
    },
    {
        // path: "razonDet",  loadChildren: "./razonesCancela/razonDetC.module#razonDetModule"
       path: "razonDet", component: RazonesComponent
    },



];


@NgModule({
    imports: [NativeScriptRouterModule.forRoot(routes, { preloadingStrategy: PreloadAllModules })],
    exports: [NativeScriptRouterModule]
})
export class AppRoutingModule { }

这些是一些代码示例:

regresaMesa(objMesa : ctMesas): void {
    SESSION.g_cMesa = objMesa.cMesa;
    SESSION.g_iMesa = objMesa.iMesa;
    SESSION.g_iArea = objMesa.iArea;
    //limpiamos valores encabezado y detalle 
    SESSION.g_vtOden       = null;
    SESSION.g_vtOrdenDet   = null;

    console.log("valor en session: --> " + SESSION.g_cMesa);

    Toast.makeText("Mesa Selecionada " +    SESSION.g_cMesa).show(); 
    this.isBusy1 = true;
    this._router.navigate(["/home"]);
}    





//pasa valor idArticulo para la busqueda de subproductos
SubProd(objctArticulo: ctArticulo) {
    //valida que se tenga articulo

    if (this.viCantidad == 0 || this.viCantidad == null){
        alert ("la cantidad debe tener un valor valido");
        return;
    }
    console.log("comensal->" + this.iComensales);

    Toast.makeText("Buscando SubProductos y Modificadores").show();
    SESSION.g_lSeleArt     = true;
    SESSION.g_iSelArticulo = objctArticulo.iArticulo;
    COMANDA.g_ctArticulo   = objctArticulo;
    COMANDA.g_iCantidad    = this.viCantidad;
    COMANDA.g_iComensal    =  this.iComensales;



    this.routerExtension.navigate(["/subP-Mod"],  { clearHistory: false });
}




public GuardaOrden() {
   if (this.vlClick  == true){
        TNSFancyAlert.showError("Informacion" ,"la orden esta siendo procesada" , "aceptar");
        return;
    }


    this.vlClick = true;






    this.isBusy1 = true;

    //cuando se presiona el boton la imagen cambia 
    let image1  = new ImageSource();
    image1.loadFromFile("~/app/images/si2.png");
    this._image1 = image1;

    let lRespuesta: any, lError: any, lMensaje;      

    if ((this.vtOrdenDetArray == []) || (this.vtOrdenDetArray == null) || (this.vtOrdenDetArray.length  == 0)){
        console.log("sin detalle");
        this.routerExtension.navigate(["/home"]);
        return;
    }

    this._vtGuardaPedService.PostGuardaPedido(SESSION.g_cCveCIA, this.viFolio ,
                                              this._cCveEmp,this.vtOrdenDetArray, 
                                              this.vtOrdenModArray).subscribe(
    (result) => {
        this.limpiar();
        lRespuesta = result.body;
        lError     = lRespuesta.response.oplError;
        lMensaje   = lRespuesta.response.opcMensaje;
        console.log("error" + lError);
        if (lError == 'true') {
            //alert("Error al guardar orden" + lMensaje);
            TNSFancyAlert.showError("Error al guardar " ,lMensaje  , "VALIDACION");


            this.isBusy1 = false;
            this.vlClick = false;
        } else {
            this.limpiar();
            SESSION.g_iFolioCreaOrd = this.viFolio;
            SESSION.g_iIDCreaOrden  = this.viIDiario;

            this.isBusy1 = false;
            this.vlClick = false;

            this.routerExtension.navigate(["home"]);
        }
    }, (error) => {
        /*console.log("error" + error);
        alert(error);
        */
        this.isBusy1 = false;

        console.log("error" + error);

        if ( error.error.originalStack != undefined ||  error.error.originalStack !=null){
            TNSFancyAlert.showError("Error Conexion! Servidor"   , error.error.originalStack, "ACEPTAR");

        }

        if ( error.error._errors != undefined ||  error.error._errors != null){
            TNSFancyAlert.showError("Error Progress" ,  error.message + "\n" + error.error._errors[0]._errorMsg + "Num Error" +
            error.error._errors[0]._errorNum, "ACEPTAR");

        }
        this.isBusy1 = false;
        this.vlClick = false;

    },()=>{
        this.limpiar();
        this.vlClick = false;
        console.log("final");
    });
}

0 个答案:

没有答案