我正在尝试将Google地图添加到我的页面上,并根据变量动态绘制边框。
我很困惑Yii应该在哪里做这件事。资产文件似乎只是某些页面加载某些静态js的方法,但似乎没有办法从PHP端生成的变量构建javascript。
我想我应该使用registerJs()
function,但我不清楚生成这里传递的代码的一般方法,因为它似乎只需要完整的java脚本。我是否在控制器中简单地创建一个变量并在那里分配javascript代码字符串?如果我想要一个前端编码器进入并调整代码,当它被埋在控制器中时,这似乎不是最好的方法。
帮助!
答案 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()中