Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

198
Vistas
Plone5 Mockup Widgets como pat-pickadate no funcionan para contenido generado dinámicamente

Supongamos el siguiente fragmento de código tonto en una plantilla de página de plone 5:

 <input id="foo" class="pat-pickadate" /> <input id="bar" /> <script type="text/javascript" > $('#bar').click( function () { $('#bar').addClass("pat-pickadate"); }); </script>

Obtendrá dos entradas. La primera es una buena entrada de calendario y la segunda está vacía al inicio. Después de hacer clic en la segunda entrada, su clase se establecerá en "pat-pickadate", como la primera, pero no se representará ningún calendario.

Encontré esto mientras intentaba encontrar la razón por la cual mis superposiciones de jquery-UI que muestran las vistas de edición y adición de plone ya no muestran (Plone5) widgets de calendario en absoluto.

¿Este comportamiento es intencionado? Si es así, ¿cuál es la forma correcta de usar widgets de maquetas en formularios obtenidos dinámicamente por llamadas AJAX en Plone 5? ¿Hay alguna llamada mágica para informar a la maquinaria Mockup del cambio de DOM?

Leí que Mockup tiene su propia técnica de superposición, pero es difícil reescribir unas 600 líneas de código JS complejo solo para obtener un widget simple correctamente.

No pude encontrar ninguna documentación ni ejemplos sobre este tema. ¿Puede alguien ponerme en la dirección correcta, por favor?

over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

Los patrones se inicializan en el momento de la carga, si su DOM cambia y contiene nuevos elementos que se supone que se representan mediante un patrón, debe llamar a Registry.scan .

Para hacerlo, deberá cambiar su script de esta manera:

 require([ 'jquery', 'pat-registry' ], function($, Registry) { $('#bar').click( function () { $('#bar').addClass("pat-pickadate"); Registry.scan($('#bar')); }); })

El script no debe estar en línea, porque nada garantiza que JQuery y/o require ya estén cargados. Así que coloque su código en un archivo JS separado y asegúrese de que esté cargado en su página usando una de esas 2 formas:

  • coloque su archivo en su tema de Diazo y agregue una etiqueta <script> en su index.html (prefiera este enfoque si está desarrollando un módulo de tema)

  • declare su secuencia de comandos directamente como un paquete compilado en registry.xml , consulte https://github.com/collective/example.p4p5/blob/master/src/example/p4p5/profiles/plone5/registry.xml (prefiera este enfoque si está desarrollando un módulo adicional)

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda