【发布时间】:2014-12-31 21:16:45
【问题描述】:
我正在使用 CakePHP 2.x
我有几个需要 javascript 文件的元素,因此在元素 ctp 文件 (whatever.ctp) 中我执行以下操作:$this->Html->script('whatever.js', array('inline'=>false)); 这通常效果很好...
但我注意到,当我尝试直接在布局(而不是视图)上使用这个完全相同的元素时,它不起作用:
//在default.ctp布局内 echo $this->element('whatever');
元素正常显示,但脚本未添加到脚本块中。如果我将相同的元素移动到视图中,则会添加脚本 do。或者,如果我将脚本从元素中取出,然后将 $this->Html->script('whatever.js', array('inline'=>false)); 添加到默认值。这也有效。
那么为什么元素不能添加到视图之外的脚本块中呢?
如果不清楚的话……
//this works
layout -> view -> element -> $this->Html->script()
//this works
layout -> $this->Html->script()
//this DOESN'T work
layout -> element -> $this->Html->script()
【问题讨论】:
-
使用 inline=>true 时
echo在哪里? -
@mark 我更正了问题中的代码。应该是
'inline'=>false。无论我将其设置为 true 还是 false,都不会出现脚本标记(当$this->Html->script()在布局中使用的元素内时)。
标签: php cakephp cakephp-2.0