我在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();
答案 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();
在动作中执行此操作时,因为动作在布局之前呈现。