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

476
Vistas
¿Qué es renderAjax(), en qué se diferencia de render()?

Cuando uso normal return this->render('create', ['model' => $model]) mi ventana emergente se vuelve loca. Cuando cambio para return $this->renderAjax('create', ['model' => $model]); todo está mágicamente en sus lugares correctos. He buscado bastante para leer sobre renderAjax() pero parece que no hay absolutamente nada por ahí. ¿Alguien puede decirme qué hace? Conozco ajax, pero por lo que sé, generalmente no tiene nada que ver con css o bootstrap.

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

0

Para conocer la diferencia entre render() y renderAjax() , primero debe comprender cómo funciona render() .

Básicamente, cuando se llama a render() , cada pieza de código JS y CSS y las referencias de archivo registradas con la vista se recopilan en varias matrices para representarlas más adelante en los lugares adecuados: estos lugares se almacenan en el diseño y su código se representa llamando a beginPage() , head() , beginBody() , endBody() y endPage() .

Puede señalar dónde se debe representar el código JS configurando el segundo parámetro en métodos relacionados, como por ejemplo:

 $this->registerJs("alert()", \yii\web\View::POS_HEAD);

rinde

 <script type="text/javascript">alert()</script>

en el diseño donde está el método $this->head() .

Todo funciona bien hasta que desea representar solo una parte principal de la vista sin el diseño. Sin él (y sus métodos como beginPage() ), las referencias JS y CSS no se pueden representar de la manera anterior y es por eso que este elegante código jQuery que gira el cuadrado no funciona: la biblioteca JS no se ha incluido allí.

Cuando llama a $this->render() desde dentro de la vista o simplemente llama a $this->renderPartial() desde el controlador, sucede exactamente esto: el diseño no se aplica.

renderAjax() viene ahora al rescate.

Este método no se preocupa por el diseño porque llama a beginPage() , head() , beginBody() , endBody() y endPage() por sí mismo. Gracias a esto, cada pieza de código JS se puede adjuntar a la vista renderizada y la biblioteca jQuery puede rotar este cuadrado una vez más, incluso cuando se debe hacer dentro de una ventana emergente AJAX.

over 4 years ago · Santiago Trujillo Denunciar

0

método público render()

Representa una vista.

La vista a renderizar se puede especificar en uno de los siguientes formatos:

alias de ruta (por ejemplo, " @app/views/site/index "); ruta absoluta dentro de la aplicación (p. ej., " //site/index "): el nombre de la vista comienza con dos barras inclinadas. El archivo de vista real se buscará en la ruta de vista de la aplicación. ruta absoluta dentro del módulo actual (por ejemplo, "/sitio/índice"): el nombre de la vista comienza con una sola barra inclinada. El archivo de vista real se buscará en la ruta de vista del módulo actual. vista relativa (por ejemplo, "índice"): el nombre de la vista no comienza con @ o /. El archivo de vista correspondiente se buscará en la ruta de vista de view $context . Si no se proporciona $context , se buscará en el directorio que contiene la vista que se está representando actualmente (es decir, esto sucede cuando se representa una vista dentro de otra vista).

método público renderAjax()

Representa una vista en respuesta a una solicitud de AJAX.

Este método es similar a render() excepto que rodeará la vista que se está procesando con las llamadas de beginPage(), head(), beginBody(), endBody() y endPage() . Al hacerlo, el método puede inyectar en el resultado de la representación scripts JS/CSS y archivos que están registrados con la vista.

renderizarAjax()

prestar()

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