我试图用PHP生成一个javascript文件。我有文件包含,所有脚本都在其中工作。我想不出的是我如何将参数传递给这个文件?
要将参数从控制器传递到视图,请使用:
$this->set('object_models', $object_models);
要将它从视图传递到我使用的元素:
echo $this->element('pageElement', array('object_model' => $object_model));
我包含我的js.php文件,方法是在视图中添加:
echo $this->Html->script('modelDrawer.js.php?', false);
答案 0 :(得分:1)
您是否考虑过使用parseExtensions
并将JS文件作为控制器的视图直接执行逻辑?
这与使用Cake生成rss feed和xml文件的方式类似。
<强>更新强>
转到routes.php文件,然后添加第Router::parseExtensions('js');
行
然后,创建一个名为DynamicController.php
的控制器,并将其粘贴到那里:
class DynamicController extends AppController {
public $uses = array();
public function modelDrawer() {
// logic in here
$this->set( 'object_models', $object_models );
}
}
创建视图文件夹并查看文件:
/app/View/Dynamic/js/model_drawer.ctp
在该model_drawer.ctp文件中,您可以放置想要被蛋糕化的视图/脚本逻辑。
然后你可以这样调用你的脚本:
<script type="text/javascript" src="/dynamic/modelDrawer.js"></script>
试一试!