我在ZF2中有一些必须包含js和css文件的视图。 我可以这样做:
$this->headscript()->appendScript(...
但是,当我使用ajax获取视图结果时,我需要从服务器数组中获取视图html,css包含和js包含。像这样:
array(
'html' => '<div id="timepicker-wrap"></div>',
'js_include' => array('/js/timepicker.js'),
'js_eval' => '$("#timepicker-wrap").timepicker()',
'css_include' => array('/css/timepicker.css'),
);
我将此数据提供给客户端后,我的js库将包含html,js和css。
问题是从服务器端的脚本中获取所有js和css文件和代码。
我是否正确,我必须扩展HeadScript,HeadStyle和InlineScript类并添加返回所有js和css的函数?或者我还要做别的事情?
答案 0 :(得分:2)
在使用Ajax时可以轻松绕过布局,例如:
SomeController.php
public function myAction()
{
if($this->getRequest()->isXmlHttpRequest()) {
$this->layout('application/layout/ajax-layout');
}
return new ViewModel();
}
应用/布局/ AJAX-layout.phtml
<?php echo $this->content ?>
当您尝试使用Ajax请求访问somecontroller / my /时,将不会呈现包含head / js / etc的基本布局。
当您使用正常请求查看时,它将被呈现。
还有其他几种方法,但这可能是最简单的方法:)
答案 1 :(得分:0)
您可以使用getContainer()方法从headScript,headStyle和InlineScript获取所有js和css
$this->headScript()->getContainer()->getValue()