ZendFramework – Cómo agregar -> HeadScript () desde Controladores?

Tengo un caso donde necesito agregar el Javascript del controlador al Layout donde ya tiene HeadScript ();

¿Cómo hacer eso desde el controlador?

por ejemplo: $this->view->HeadScript()->appendScript();

Este es el controlador: ninguno de los dos aplica.

 class RouterController extends Zend_Controller_Action { public function init() { $this->view->HeadScript()->appendFile('/js/test.js')->setIndent(8); $this->view->HeadScript( Zend_View_Helper_HeadScript::FILE, '/js/test.js' ); } } 

Este es el archivo de vista: index.phtml

 HeadScript()->appendFile('/js/test.js')->setIndent(8);?> 

Si elimino el comentario a la vista, funciona pero no en Controller. Quiero aplicar esto desde el controlador ¿cómo?

Lo hice funcionar desde el método preDispatch en un controlador, recuerde que debe pasar los cambios de diseño antes de que se pasen los encabezados.

 public function preDispatch() { parent::preDispatch(); $layout = new Zend_Layout(); $layout->getView()->headScript()->appendScript('/javascript/form.js', 'text/javascript'); } 

aún debe tener el marcador de posición headScript en su diseño.

 $this->view->headScript()->appendFile('/path/to/file.js'); 
 HeadScript()->appendFile('/js/test.js')->setIndent(8);//Your question ?> $this->view->headScript()->appendFile('/path/to/file.js');//Alex Howansky's answer 

Hay algo diferente. 🙂

 $this->view->HeadScript( Zend_View_Helper_HeadScript::FILE, '/path/to/file.js' ); 

o

 $this->view->HeadScript( Zend_View_Helper_HeadScript::SCRIPT, 'js code' ); 

Lo mismo para $this->view->InlineScript() .

 $headScript = $this->getServiceLocator()->get('viewhelpermanager')->get('headScript'); $headScript->prependFile($this->getSystemBaseUrl()."js/front_end/lib/jQuery/jquery-2.2.3.min.js","text/javascript");