13

我需要将 jQuery 和其他 javascript 文件添加到我的 Zend Framework 项目中。我正在尝试使用动作控制器来做到这一点:-

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();
}

但它不起作用。

4

7 回答 7

10

以下是如何在 ZF2的控制器中使用视图助手来解决您的问题:

public function someAction()
{                 
     $this->getViewHelper('HeadScript')->appendFile($basePath . '/js/somejs.js');    
}

protected function getViewHelper($helperName)
{
    return $this->getServiceLocator()->get('viewhelpermanager')->get($helperName);
}
于 2012-11-30T10:14:25.527 回答
9
 $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');

视图中的这段代码没问题。但我不知道这是正确的方法。

于 2012-04-30T04:11:25.967 回答
3

在 ZF2 的控制器中使用视图助手的最简单方法可能是通过渲染器对象:

public function someAction()
{                 
     $renderer = $this->serviceLocator->get('Zend\View\Renderer\RendererInterface');
     $renderer->headScript()->appendFile($renderer->baseUrl() . '/js/somejs.js');
}
于 2012-11-30T11:51:04.677 回答
2

你可以试试这个。它对我来说很好用

//将这些行写入您的 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);
}
于 2013-04-10T11:53:41.437 回答
1

您没有使用视图添加 jquery:

 $this->view->headScript()->appendFile('http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js');
于 2012-04-27T09:43:28.663 回答
1

一个好的方法是在你的控制器操作中使用下面的代码让你说你想包含 paginator.js

$this->view->headScript()->appendFile($this->view->baseUrl().'/js/paginator.js');
于 2012-05-02T11:58:40.137 回答
1

以上所有内容都给我带来了大量错误,而 $this->view->headScript() 完全是关于 Zend Framework 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(); ?>
于 2012-11-15T10:03:05.110 回答