drupal 8 – ¿Cómo cargar contenido en un div con ajax?

Pregunta:

Después de validar con javascript que podré usar la ubicación del cliente:

if (navigator.geolocation) {
...

Necesito cargar el contenido de un bloque de vista con argumentos (basados ​​en las coordenadas de posición). Sé cómo obtener el HTML que quiero poner dentro del div, así que al menos tengo esta parte.

Intenté seguir la carga simple de Drupal AJAX con jQuery y el artículo de devolución de llamada de entrega (es decir, escribir para Drupal 7 muy diferente de Drupal 8) pero acabo de llegar para cargar una página en un div (con encabezados y pie de página muy lejos de mi objetivo real ).

jQuery('#my-div').load('/admin/help');

¿Alguna idea sobre cómo cargar contenido en un div con ajax?

Respuesta:

Se me ocurrió una solución funcional. Puede que no sea el mejor enfoque, pero funciona.

Necesita crear su archivo de enrutamiento:

my_module.routing.yml

diocese_core.path_with_data:
  path: 'path-with-data'
  defaults:
    _controller: '\Drupal\my_module\Controller\MyController::Render'
  requirements:
    _access: 'TRUE'

Creando el controlador para su página

src / Controller / MyController.php

<?php

namespace Drupal\my_module\Controller;

use Drupal\Core\Controller\ControllerBase;
use \Symfony\Component\HttpFoundation\Response;

/**
 * An example controller.
 */
class MyController extends ControllerBase {

  /**
   * {@inheritdoc}
   */
  public function Render() {
    $build = array(
      '#type' => 'markup',
      '#markup' => t('Hello World!'),
    );
    // This is the important part, because will render only the TWIG template.
    return new Response(render($build));
  }

}

Y solo necesitas llamar en javascript

jQuery('#my-div').load('path-with-data');

Esta será la salida una vez que se ejecute el código:

<div id="my-div">Hello World!</div>

Referencias:

Leave a Comment

Your email address will not be published.

Scroll to Top

istanbul avukat

-

web tasarım