registerScript() を使用して生の JavaScript をページに出力しようとしています。以下は正常に動作しているようです (ビュー レベルで、コントローラーによって呼び出されます)。
modules/myApp/views/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 をフィルタリングしています...これを出力するために変更できるパラメーターまたは構成スイッチがあることを願っています (または、これを行うためのより良い方法があるかもしれません)。
どうも、
ピーター
アップデート:
ウィジェットのレンダリング方法:
<?php
class myWidget extends CWidget {
public function init() {
} // end init()
public function run() {
// ...
$this->render('myWidget');
} // end run()
}