Zend framework2 是否使用AJAX在ZF2中包含js和css

Zend framework2 是否使用AJAX在ZF2中包含js和css,zend-framework2,Zend Framework2,我在ZF2中有一些视图必须包含js和css文件。 我可以这样做,因为: $this->headscript()->appendScript(... 但是,当我使用ajax获得视图结果时,我需要从服务器阵列中获得视图html、css includes和js includes。像这样: array( 'html' => '<div id="timepicker-wrap"></div>', 'js_include' => array(

我在ZF2中有一些视图必须包含js和css文件。 我可以这样做,因为:

$this->headscript()->appendScript(...
但是,当我使用ajax获得视图结果时,我需要从服务器阵列中获得视图html、css includes和js includes。像这样:

array(
    'html' => '<div id="timepicker-wrap"></div>',
    'js_include' => array('/js/timepicker.js'),
    'js_eval' => '$("#timepicker-wrap").timepicker()',
    'css_include' => array('/css/timepicker.css'),
);
数组(
“html'=>”,
'js_include'=>array('/js/timepicker.js'),
'js_eval'=>'$(“#timepicker wrap”).timepicker(),
'css_include'=>array('/css/timepicker.css'),
);
在我将这些数据提供给客户端之后,我的js库将包括html、js和css

问题是从服务器端的headscript获取所有js和css文件和代码


我必须扩展HeadScript、HeadStyle和InlineScript类,并添加返回所有js和css的函数,对吗?或者我必须做些别的事情?

在使用Ajax时,您可以非常轻松地绕过布局,例如:

SomeController.php

public function myAction()
{
    if($this->getRequest()->isXmlHttpRequest()) {
        $this->layout('application/layout/ajax-layout');
    }

    return new ViewModel();
}
application/layout/ajax-layout.phtml

<?php echo $this->content ?>

当您尝试使用Ajax请求访问somecontroller/my/时,基本布局(包括head/js/etc)将不会呈现

但是,当您使用普通请求进行查看时,它将被呈现


还有其他几种方法可以做到这一点,但这可能是最简单的:)

您可以使用getContainer()方法从headScript、headStyle和InlineScript获取所有js和css

$this->headScript()->getContainer()->getValue()