I have a case where i need to add the Javascript from controller to the Layout where it has already HeadScript();
How to do that from controller?
e.g: $this->view->HeadScript()->appendScript();
This is controller: Both does not apply.
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' ); } }
This is the view file: index.phtml
<?//$this->HeadScript()->appendFile('/js/test.js')->setIndent(8);?>
If i uncomment in view it works but not in Controller. I want to apply this from controller how now?
Advertisement
Answer
I got this to work from the preDispatch method in a controller, remember you have to pass layout changes before headers are passed.
public function preDispatch() { parent::preDispatch(); $layout = new Zend_Layout(); $layout->getView()->headScript()->appendScript('/javascript/form.js', 'text/javascript'); }
you still have to have the headScript placeholder in your layout.