Puncte:0

Pierd sugestiile de șabloane când este apelat un eveniment ajax

drapel de

Generez sugestii de teme bazate pe modulul formdazzle, mi-am creat propria variantă pentru că aveam nevoie de un alt nivel de granularitate al numelor de teme și funcționează bine.

Ei bine, în alter hook am cheia #pre_render și metoda de a genera sugestii:

Exemplu

$form['#formdazzle'] = ['form_id' => $form_id];

 // Adăugați funcția noastră de pre-rendare la sfârșitul listei.
 dacă (!isset($form['#pre_render'])) {
   $form['#pre_render'] = [];
 }
 $form['#pre_render'][] = [self::class, 'preRenderForm'];

Când se încarcă formularul, sugestiile funcționează bine, acum, am un paragraf și butonul pentru a adăuga mai multe elemente de paragraf, când dau clic pe el, Ajax este executat implicit și noul element este creat, dar sugestiile de teme nu sunt regenerate, iar noul marcajul care este înlocuit nu este cel corect (utilizați sugestiile implicite drupal).Adică pierd tot marcajul șabloanelor.

introduceți descrierea imaginii aici

Făcând teste, observ că atunci când evenimentul ajax este executat, funcția pre_render nu este executată din nou și de aceea sugestiile nu sunt generate din nou.

Există o modalitate de a face reluarea pre_render după un eveniment Ajax?

Mulțumiri.

4uk4 avatar
drapel cn
Într-un apel invers Ajax numai părțile dinamice ale formularului sunt redate și înlocuite. Totuși, acest lucru nu ar trebui să afecteze formdazzle, deoarece aceasta este pentru elementele de intrare, și pentru cele înlocuite. Dar ce este în callback-ul #pre_render, nu ai putea să-l plasezi în altă parte?
Alfred Armstrong avatar
drapel cn
Sugestiile de teme ar trebui să fie relativ statice, nu ar trebui să depindă de proprietățile dinamice care se schimbă în zbor. Ar trebui să le generați printr-un hook_X_suggestions_alter, nu prin pre_render, dacă asta faceți.
chalo avatar
drapel de
@AlfredArmstrong Înțeleg ce menționezi, așa cum comentez, în pre_render ceea ce se face este să furnizezi informații suplimentare pentru ca hook_X_suggestions_alter să poată adăuga sugestii suplimentare, în final sugestiile vin din aceste hooks.
Alfred Armstrong avatar
drapel cn
Da, dar pre-rendarea nu este rulată de fiecare dată, așa că nu va funcționa. hook_suggestions_alter trebuie să fie de sine stătător, în mod ideal, obținând tot ce are nevoie din parametrii trecuți.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.