js ウィジェットに jQuery ウィジェット ファクトリ (jQuery ウィジェット) を使用しています。
$.widget('cool.someWidget', {
options: {
onSomething: null
}
// other js code
});
通常、あなたが書いたjsからウィジェットを実行するには
$(selector).someWidget({
onSomething: function() { ..... }
});
Yii では、CJSON::encode を使用して、onSomething イベントを含むすべての初期化プロパティをコンパイルします。
echo CJSON::encode(array(
'onSomething' => 'function() {....}',
));
ただし、変換(CJSON)により、 function() {...} を文字列に変換するため、ドキュメントでは次のように記述されています
$(selector).someWidget({
onSomething: "function() { .... }"
});
this._trigger('onSomething') を呼び出すと、onSomething は実際には文字列であるため、コードは実行されません。
この問題は、ビューを「生成」した場合にのみ発生し、Ajax リクエスト (システムで異なる方法で処理します) では発生しません。Yiiに引用符なしで関数を実際にドキュメントに書き込む「通常の」方法はありますか?