Суть такая: есть страница с блоками данных. Каждый блок — форма, загружаемая и отправляемая через AJAX. Один из блоков содержит yii\jui\Slider. При первой загрузке через Controller::render() всё отрисовывается нормально, но при обновлении блока через AJAX (возвращается Controller::renderPartial()), естественно, Slider уже не включается (document.ready не отрабатывает). Вручную в JS делать $(’#slider’).slider() — не вариант, потому что там люто много параметров, которые не хочется дублировать, к тому же, это не наш подход!
Есть идеи?
Если я правильно понимаю, при использовании Slider::widget() он в конце выдаваемого кода генерит:
Надо будет переопределять защищённые методы registerClientEvents() и registerClientOptions(), чтобы они при AJAX сразу плевали JS-код, а не передавали его во вьюху. Проще не переопределять их, а взять результат их работы из вьюхи, как выше показано.
Или я всё-таки неправильно понимаю, как переопределить виджеты?! Надо помнить, что нужен системный подход. И, если в блоке много разных виджетов (Slider, MaskedInput, …), придётся их все переопределять. И смысл тогда от этих виджетов, если их все надо переопределить?! Проще по-старинке напрямую JS-код в шаблон напихать…