gpt4 book ai didi

yii - CJSON::编码一个javascript函数

转载 作者:行者123 更新时间:2023-12-04 19:52:50 24 4
gpt4 key购买 nike

我为我的 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 实际上是一个字符串,它不会运行代码。

只有当我“生成” View 而不是 Ajax 请求(我在系统中以不同方式处理)时,我才会遇到这个问题。是否有一些“正常”的方式让 Yii 在文档中实际编写不带引号的函数?

最佳答案

实际上有一个内置的方法来防止编码函数用引号包裹函数声明,你应该在你的函数声明之前添加js:

CJavaScript::enocde(array(
'prop'=>'value',
'callback' => 'js:function(){}'
))

关于yii - CJSON::编码一个javascript函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12286751/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com