Yii x-редактируемый в CGridView: не останавливать обновление экрана, когда успех возвращает ошибку
Когда JSON ответ отправляет response.success == false
Я вижу журнал консоли, показывающий мне ошибку, но x-editable кажется, что не ловит return
и значение на экране меняется на новое, введенное мной, хотя оно не было действительно сохранено. Что-то не так?
Вот фрагмент кода CGridView, который я использую:
'class' => 'editable.EditableColumn',
'editable' => array(
'model' => $model,
'params' => array('YII_CSRF_TOKEN' => Yii::app()->request->csrfToken),
'url' => $this->createUrl('user/update'),
'success' => 'js: function(response, newValue) {
if(!response.success)
console.log(response.msg);
return response.msg;
}',
'options' => array(
'ajaxOptions' => array('dataType' => 'json')
),
)
РЕДАКТИРОВАТЬ 1:
Хорошо, я работал над этим, и я нашел, в чем проблема. Кажется, что функция JavaScript, которую я поставил на успех, не работает должным образом.
if
оператор правильно перехватывает ответ, но возвращаемое значение отправляется неправильно. Я объясняю: если я поставлю такой литерал: return "test return";
значение возвращается правильно, но если я поставлю return response.msg;
ничего не отправлено.
Конечно, response.msg
не является пустым и правильно содержит сообщение String.
1 ответ
Хорошо, я работал над этим, и я нашел свою глупую ошибку... Я возвращал msg как массив, и мне пришлось сделать это:
return response.msg[index];
куда index
где хранится сообщение
Это было действительно неловко терять время с этим...