2013-03-04 144 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);