Zend Framework 2 ::为什么inlineScript() - > captureStart()在layout.phtml中不起作用

时间:2014-05-15 10:18:03

标签: php zend-framework2

我在JS中使用$this->inlineScript()->appendFile()添加了我的主题的layout.phtml文件 之后,我尝试使用jquery方法添加一些内联$this->inlineScript()->captureStart()代码 jquery代码未显示,但如果我将其包含在操作视图页面中,则jquery代码显示正常。
任何人都可以猜到我错过了什么 这是我的代码片段。

 echo $this->inlineScript()->appendFile($this->basePath() . '/assets/plugins/respond.min.js', 'text/javascript', array('conditional' => 'lt IE 7',))
                ->appendFile($this->basePath() . '/assets/plugins/excanvas.min.js', 'text/javascript', array('conditional' => 'lt IE 7',))
                ->appendFile($this->basePath('/assets/plugins/jquery-1.10.2.min.js'));


        $this->inlineScript()->captureStart();
        echo <<<JS
   jQuery(document).ready(function() {
                App.init(); // initlayout and core plugins
                Index.init();
                Index.initJQVMAP(); // init index page's custom scripts
                Index.initCalendar(); // init index page's custom scripts
                Index.initCharts(); // init index page's custom scripts
                Index.initChat();
                Index.initMiniCharts();
                Index.initDashboardDaterange();
                Index.initIntro();
                Tasks.initDashboardWidget();
            });
JS;
        $this->inlineScript()->captureEnd();

1 个答案:

答案 0 :(得分:1)

如果您在之后捕获了其他脚本,那么您可以使用inlineScript帮助器输出,那么您希望如何输出其他代码?您需要将内联脚本移动到布局中的回显上方,或者将回显移动到末尾:

$this->inlineScript()->appendFile($this->basePath() . '/assets/plugins/respond.min.js', 'text/javascript', array('conditional' => 'lt IE 7',))
                     ->appendFile($this->basePath() . '/assets/plugins/excanvas.min.js', 'text/javascript', array('conditional' => 'lt IE 7',))
                     ->appendFile($this->basePath('/assets/plugins/jquery-1.10.2.min.js'));


$this->inlineScript()->captureStart();
echo <<<JS
   jQuery(document).ready(function() {
            App.init(); // initlayout and core plugins
            Index.init();
            Index.initJQVMAP(); // init index page's custom scripts
            Index.initCalendar(); // init index page's custom scripts
            Index.initCharts(); // init index page's custom scripts
            Index.initChat();
            Index.initMiniCharts();
            Index.initDashboardDaterange();
            Index.initIntro();
            Tasks.initDashboardWidget();
        });
JS;
$this->inlineScript()->captureEnd();

echo $this->inlineScript();

在动作中执行此操作时,因为动作在布局之前呈现。