es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Plantilla Go si el valor está establecido y es falso

Estoy utilizando Listmonk que utiliza las plantillas de Go. Tengo una situación en la que una variable para el estado del usuario (.Subscriber.Attribs.Pro) puede existir (y si lo hace, puede ser true o false). Quiero mostrar un bloque de texto solo si el valor existe.

El código que tengo funciona si el atributo Pro está configurado. Sin embargo, si no está configurado, se procesará como not '', lo que da como resultado un valor de true.

{{ if not .Subscriber.Attribs.Pro }}
  ¡No eres un usuario Pro!
{{ end }}

¿Cómo hago que este código se ejecute solo si el atributo Pro está explícitamente configurado como false?

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Para que el código se ejecute solo si el atributo Pro está explícitamente definido como false, se puede utilizar el siguiente código:

    {{ if and (not (eq .Subscriber.Attribs.Pro nil)) (not .Subscriber.Attribs.Pro) }}
      ¡No eres un usuario Pro!
    {{ end }}
    

    Este código primero verifica si el atributo Pro no es nil, para evitar cualquier error si el atributo no existe. Luego, verifica si el atributo es false utilizando la función not para invertir el valor, lo cual solo devolverá true si el atributo está explícitamente definido como false.

    Usando and, se asegura de que ambas condiciones se cumplan antes de mostrar el bloque de texto.

Comments are closed.