用Yii创建动态JS

时间:2015-03-17 18:45:18

标签: javascript php yii yii2

我正在尝试将Google地图添加到我的页面上,并根据变量动态绘制边框。

我很困惑Yii应该在哪里做这件事。资产文件似乎只是某些页面加载某些静态js的方法,但似乎没有办法从PHP端生成的变量构建javascript。

我想我应该使用registerJs() function,但我不清楚生成这里传递的代码的一般方法,因为它似乎只需要完整的java脚本。我是否在控制器中简单地创建一个变量并在那里分配javascript代码字符串?如果我想要一个前端编码器进入并调整代码,当它被埋在控制器中时,这似乎不是最好的方法。

帮助!

1 个答案:

答案 0 :(得分:1)

我是这样做的(不是谷歌地图,而是寄存器JS):

$script = "Javascript here, with your ".$phpvariables." in it.";
$this->registerJs($script, View::POS_END);
  

查看头部的POS_HEAD。

     

打开后立即查看:: POS_BEGIN。

     

在关闭前查看:: POS_END。

     

View :: POS_READY用于在文档就绪事件上执行代码。这将   自动注册jQuery。

     

View :: POS_LOAD用于在文档加载事件上执行代码。这将   自动注册jQuery。

这是在视图文件中,它使用View Class registerJs()。

编辑:请注意,通过使用POS_LOAD和POS_READY,该方法将自动注册jQuery js文件并将其包含在jQuery(窗口).load()或jQuery(document).ready()中