我为我的 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() { .... }"
});
因为 onSomething 实际上是一个字符串,当我调用 this._trigger('onSomething') 它不会运行代码。
只有当我“生成”视图而不是 Ajax 请求(我在系统中以不同方式处理)时,我才会遇到这个问题。是否有一些“正常”的方式让 Yii 实际上在文档中写入不带引号的函数?