我正在尝试使用registerScript()将一些原始javascript输出到我的页面中。以下似乎工作正常(在视图级别,由控制器调用):
模块/对myApp /视图/ readEditor.php:
<?php
$cs = Yii::app()->getClientScript();
$cs->registerScript(
'my-hello-world-1',
'var someCoolVariableInView = 11;',
CClientScript::POS_END
);
?>
这显示在应该之前:
/*<![CDATA[*/
var someCoolVariableInView = 11;
/*]]>*/
但是,当我在小部件的视图中执行等效操作时:
模块/对myApp /组件/视图/ myWidget.php:
<?php
$cs = Yii::app()->getClientScript();
$cs->registerScript(
'my-hello-world-2',
'var someCoolVariableInWidget = 10;',
CClientScript::POS_END
);
?>
javascript没有显示。
我做过一堆谷歌搜索,但没有发现任何有用的东西。我的猜测是小部件正在过滤掉javascript ...希望有一个参数或配置开关我可以改变以使其输出(或者可能有更好的方法)。
THX,
彼得
更新:
如何呈现小部件:
<?php
class myWidget extends CWidget {
public function init() {
} // end init()
public function run() {
// ...
$this->render('myWidget');
} // end run()
}
答案 0 :(得分:0)
将您的registerScript放在init()
答案 1 :(得分:0)
在您的控制器中,尝试使用以下代码处理渲染javascript代码。
$output=$this->widget('myWidget',array(),true);
echo $this->processOutput($output);