我需要jQuery和其他JavaScript文件添加到我的Zend框架的项目。 我想用动作控制器来做到这一点: -
public function userinfoAction()
{
$this->view->headScript()->appendFile($basePath .'/js/validate_jquary.js');
$this->headScript()->appendFile('http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js');
return new ViewModel();
}
但它不工作。
这里是你如何使用视图助手从 ZF2 控制器内解决你的问题:
public function someAction()
{
$this->getViewHelper('HeadScript')->appendFile($basePath . '/js/somejs.js');
}
protected function getViewHelper($helperName)
{
return $this->getServiceLocator()->get('viewhelpermanager')->get($helperName);
}
$this->HeadScript()->appendFile('http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js','text/javascript');
$this->HeadScript()->appendFile('http://localhost/zend/public/js/validate_jquary.js','text/javascript');
正是基于这种代码在视图中确定。 但我不知道这是正确的方法。
可能是使用视图助手从ZF2在控制器内的最简单的方法是通过渲染对象:
public function someAction()
{
$renderer = $this->serviceLocator->get('Zend\View\Renderer\RendererInterface');
$renderer->headScript()->appendFile($renderer->baseUrl() . '/js/somejs.js');
}
你可以试试这个。 其作品对我很好
//写在你的SampleController这些行
public function someAction()
{
$this->getViewHelper('HeadScript')->appendFile('/js/yourjsfile.js');
$this->getViewHelper('HeadScript')->appendFile('/js/jquery/jquery.min.js');
}
在控制器//写入以下的方法
protected function getViewHelper($helperName)
{
return $this->getServiceLocator()->get('viewhelpermanager')->get($helperName);
}
您没有使用视图来添加的jQuery:
$this->view->headScript()->appendFile('http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js');
应该是一个很好的方法是使用下面的代码在你的控制器动作可以说ü要包括paginator.js
$this->view->headScript()->appendFile($this->view->baseUrl().'/js/paginator.js');
上述所有的被提供了大量的错误,我和$这个 - >查看 - >用HeadScript()是所有关于Zend框架1.这对我的作品:
在控制器类定义添加之前,你的控制器:
use Zend\View\Helper\HeadScript;
然后你可以使用这样的事情在你的控制器(确保你可以用它在任何行动,不仅在构造函数):
/**
* @var Zend\View\Helper\HeadScript
*/
protected $headScript;
function __construct() {
$this->headScript = new HeadScript();
$this->headScript->appendFile('http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js','text/javascript');
}
然后你应该添加到您的布局:
<?php echo $this->headScript(); ?>