Puncte:1

Utilizați AJAX care nu funcționează când vizualizarea este redată programatic

drapel in

Am o vedere care este redată astfel

$view = Vizualizări::getView('view_id');
$view->setDisplay('block_1');
$view->execute();
$render = $view->render(); 
$html = \Drupal::service('renderer')->render($render);

Variabila $html este returnată în metoda de construire a unui bloc

public function build() {
    returnează matrice (
      '#theme' => 'theme_template',
      '#view' => $html,
    );
  }

Apoi este scos în fișierul twig {{ vizualizare }}

Vizualizarea este redată, dar paginarea nu folosește ajax, ci reîncarcă pagina cu șirul de interogare ?page=1

Am găsit o întrebare similară, dar aceasta este pentru Drupal 7: Utilizați ajax care nu funcționează în blocul de vizualizări afișat programatic

Multumesc anticipat!

4uk4 avatar
drapel cn
Nu ar trebui să randați prea devreme și nu este necesar, șabloanele pot imprima matrice de randare. De asemenea, Views oferă deja un plugin de bloc: /core/modules/views/src/Plugin/Block/ViewsBlock.php.
Stephan Sutter avatar
drapel in
Bună @4k4, mulțumesc pentru răspuns! Am încercat să folosesc variabila $render, dar totuși ajax nu este folosit. O să mă uit în ViewsBlock, dar aveți link-uri despre cum să îl utilizați?
No Sssweat avatar
drapel ua
`Ai link-uri despre cum să-l folosești?` @StephanSutter, trebuie doar să mergi la `/admin/structure/block` și să-l plasezi ca orice alt bloc.Îi puteți limita vizibilitatea, astfel încât să apară doar pe anumite pagini.
Puncte:0
drapel ua

Încearcă așa

$view = Views::getView('view_name');
$view->setDisplay('view_machine_name');
$view->execute();

public function build() {
    returnează matrice (
        '#type' => 'vizualizare',
        '#name' => 'view_name',
        '#view' => $view,
        '#display_id' => 'bloc_1',
        '#embed' => TRUE,
        '#cache' => $view->getCacheTags(),
    );
}

Daca nu se foloseste Twig Tweak iar pe fișierul șablon al blocului sau al paginii faceți

{{ drupal_view('view_name', 'block_1') }}

Modulul Twig Tweak oferă o extensie Twig cu câteva funcții utile și filtre care pot îmbunătăți experiența dezvoltatorului.

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.