13

jQueryおよびその他のjavascriptファイルをZendFrameworkプロジェクトに追加する必要があります。私はアクションコントローラーでそれをやろうとしています:-

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');

ビューにこのコードでOKです。しかし、これが正しい方法かどうかはわかりません。

于 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 に答える
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

上記のすべてが私に大量のエラーを与えており、$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 に答える
1

そのための良い方法は、コントローラー アクションで以下のコードを使用することです。たとえば、paginator.js を含めたいとします。

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