CJSON::кодировать функцию javascriptPhp

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 CJSON::кодировать функцию javascript

Сообщение Anonymous »

Я использую фабрику виджетов jQuery (виджеты jQuery) для своих js-виджетов.

Код: Выделить всё

$.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) он преобразует функцию() {...} в строку, поэтому в документе написано следующее

Код: Выделить всё

$(selector).someWidget({
onSomething: "function() { .... }"
});
поскольку onSomething на самом деле является строкой, когда я вызываю this._trigger('onSomething'), он не запускает код.

Эта проблема возникает только тогда, когда я «генерирую» представление, а не с помощью Ajax-запросов (которые в системе я обрабатываю по-другому). Есть ли какой-нибудь «нормальный» способ заставить Yii написать в документе функцию без кавычек?

Подробнее здесь: https://stackoverflow.com/questions/122 ... t-function
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»