Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

203
Views
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 answers
Answer question

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!