0

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()

}
4

2 に答える 2

0

registerScript を入れますinit()

于 2013-03-05T10:22:43.473 に答える