Pregunta

Estoy teniendo problemas para recuperar el trabajo botón del navegador web correctamente en el flujo. Versión de griales es 1.1.2. Imagínese código de ejemplo:

def someFlow = {
   ...
   fillGroup {
      on("addMember"){
         ...
      }.to "fillMember"
   }
   fillMember {
      on("addMember") {
         ...
      }.to "fillMember"
      on("goToCart").to "showCart"
   }
   showCart {
      ...
   }
}

Ahora, agrego grupo, varios (> 1) miembros e ir a la compra. El problema es que durante el llenado de los miembros de la URL sigue siendo el mismo. parámetro de ejecución URL cambia sólo si los cambios de estado (Ver).

Así Firefox recuerda páginas fillMember como una página porque la URL no cambia. Por lo tanto botón de retroceso no funciona correctamente. Si estoy en showcart y empuje hacia atrás, llego a la página fillMember. Además pulsación de botón de retroceso vuelve fillGroup. Lo necesito para pasar por todas las páginas fillMember.

¿Hay alguna manera de forzar el flujo Griales web para cambiar el parámetro de ejecución a pesar de que redirigen al mismo estado? O puedo poner mi propio parámetro en la URL?

He encontrado una manera bastante feo cómo hacerlo: usar dos fillMember afirma - fillMember1 y fillMember2, tanto haciendo lo mismo, uno vuelve a dirigir a otro. Pero necesito un estado más acción que sea capaz de distinguir el estado real al golpear la espalda y botones de avance. Esto construir obras pero preferiría manera más fácil.

Gracias por las respuestas

Tom

¿Fue útil?

Solución

Hasta ahora, la única solución que he encontrado es la que mencioné. Utilizar dos estados opinión, ambos hacen exactamente lo mismo, y un estado de acción para mantener cierta información de estado (que sería difícil distinguir adecuadamente miembro de procesado sin ella). El código sería algo como esto:

def someFlow = {
   ...
   fillGroup {
      on("addMember"){
         ...
      }.to "fillMemberLogic"
   }
   fillMemberLogic {
      action {
         ...
         flow.stateinf += 1
         if(flow.stateinf%2 == 1)
            return gotoFillMember1()
         else
            return gotoFillMember2()
      }
      on("gotoFillMember1").to "fillMember1"
      on("gotoFillMember2").to "fillMember2"
   }      
   fillMember1 {
      on("addMember") {
         ...
      }.to "fillMemberLogic"
      on("goToCart").to "showCart"
   }
   fillMember2 {
      on("addMember") {
         ...
      }.to "fillMemberLogic"
      on("goToCart").to "showCart"
   }
   showCart {
      ...
   }
}

Desde el punto de vista está siendo cambiado para cada miembro, el parámetro de ejecución también está siendo cambiada y URL es distinta para cada miembro. Firefox distingue páginas vistas según la URL, por lo que puede ir y venir a través de todos los miembros que usan botones Atrás y Adelante.

flujo Web es el URL de mapeo con el estado actual del objeto de flujo. Por lo tanto es fácilmente posible distinguir el miembro actual que está procesando después de varias pulsaciones de botón de atrás.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top