Yii Widget视图不呈现javascript代码

时间:2013-03-04 21:51:02

标签: javascript yii yii-components

我正在尝试使用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()

}

2 个答案:

答案 0 :(得分:0)

将您的registerScript放在init()

答案 1 :(得分:0)

在您的控制器中,尝试使用以下代码处理渲染javascript代码。

$output=$this->widget('myWidget',array(),true); 
echo $this->processOutput($output);