2013-03-04 142 views
0

我想使用registerScript()来输出一些原始的JavaScript到我的页面。下面似乎很好地工作(在视图级别,由控制器调用):Yii Widget视图不呈现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并没有显示出来。

我已经做了一堆google搜索,但没有发现任何有用的。我的猜测是这个小部件正在过滤掉javascript ......希望有一个参数或配置开关,我可以改变它来输出(或者有更好的方法)。

THX,

彼得

UPDATE:

小部件的呈现方式:

<?php 
class myWidget extends CWidget { 

    public function init() { 
    } // end init() 

    public function run() { 
     // ... 
     $this->render('myWidget'); 
    } // end run() 

} 
+0

这个“窗口小部件的观点”看起来非常可疑。它是如何呈现的? – Jon 2013-03-04 21:53:06

+0

@Jon添加了更多代码,显示了如何呈现小部件。这是你的意思吗?什么是可疑的?注意我在窗口小部件视图中有div和其他内容,输出正常,只是脚本不显示。 – PeterG 2013-03-04 21:57:32

+0

你是如何加载widget的? – Alex 2013-03-05 09:12:58

回答

0

把你registerScript在init()

0

在你的控制器试试下面的代码与处理信条一起工作ering javascript代码。

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