1

我试图使用 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);
4

1 回答 1

1

您是否考虑过使用parseExtensions并包含您的 JS 文件作为可以直接在其上执行逻辑的控制器的视图?

这与使用 Cake 生成 rss 提要和 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>

试试看!

于 2013-01-03T17:48:53.597 回答