Подтвердить что ты не робот

Как добавить внешний файл javascript в приложение Zend Framework 2?

Мне нужно добавить jQuery и другие файлы javascript в мой проект Zend Framework. Я пытаюсь сделать это с помощью контроллера Action: -

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

Но он не работает.

4b9b3361

Ответ 1

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

Все в порядке с этим кодом в представлении. Но я не знаю, этот правильный метод.

Ответ 2

Вот как вы можете использовать помощники вида изнутри контроллера в ZF2 для решения вашей проблемы:

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

protected function getViewHelper($helperName)
{
    return $this->getServiceLocator()->get('viewhelpermanager')->get($helperName);
}

Ответ 3

Вероятно, самый простой способ использования помощников вида изнутри контроллера в ZF2 - через объект рендеринга:

public function someAction()
{                 
     $renderer = $this->serviceLocator->get('Zend\View\Renderer\RendererInterface');
     $renderer->headScript()->appendFile($renderer->baseUrl() . '/js/somejs.js');
}

Ответ 4

вы можете попробовать это. его работы отлично для меня

//пишем эти строки в вашем 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);
}

Ответ 5

Вы не используете представление для добавления jquery:

 $this->view->headScript()->appendFile('http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js');

Ответ 6

хорошим способом для этого является использование приведенного ниже кода в действии вашего контроллера допустим, что вы хотите включить paginator.js

$this->view->headScript()->appendFile($this->view->baseUrl().'/js/paginator.js');

Ответ 7

Все вышеперечисленное дает массу ошибок для меня, а $this- > view- > headScript() вообще относится к Zend Framework 1. Это работает для меня:

в контроллере до определения класса контроллера add:

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