renderPartial, registerScriptFile и аякс

Общие вопросы по использованию фреймворка. Если не знаете как что-то сделать и это про Yii, вам сюда.
Ответить
Demon_id
Сообщения: 421
Зарегистрирован: 2011.10.29, 00:13

renderPartial, registerScriptFile и аякс

Сообщение Demon_id »

Зачастую приходится аяксом вытягивать кусок страницы. Для этого создаём экшин, в нём выполняем renderPartial(путь_к_представлению_куска_страницы).
И всё хорошо до тех пор, пока в этом куске страницы не встречаются виджеты, которые публикуют ассеты и куски яваскрипта. обычно они публикуются методами registerScriptFile и registerScript.
Вся проблема в том, что эти метода пытаются публиковать ресурсы в тег <head> (если это ассеты) или в конец страницы перед закрывающимся <body> если это куски скриптов.
Естественно в нашем случае эти методы не находят не того ни другого (ни <head>, ни <body>) и не публикуют ничего вовсе.
Таким образом кусок страницы с виджетами принесённый аяксом перестаёт работать, т.к. нет необходимых ему ассетов и скриптов.


Что делать? Как вы решаете эту проблему?
Skiller
Сообщения: 627
Зарегистрирован: 2011.11.27, 00:21

Re: renderPartial, registerScriptFile и аякс

Сообщение Skiller »

сначала скиньте в assets скрипт, через метод publish AssetManager, а потом во вью просто используйте вернутый вам AssetManeger url и все.
http://www.yiiframework.com/doc/api/1.1 ... ish-detail

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

        Yii::app()->assetManager->publish(
            Yii::app()->controller->module->basePath.'/scripts/clients.js',
            true,0,YII_DEBUG
        )
Demon_id
Сообщения: 421
Зарегистрирован: 2011.10.29, 00:13

Re: renderPartial, registerScriptFile и аякс

Сообщение Demon_id »

Skiller писал(а):сначала скиньте в assets скрипт, через метод publish AssetManager, а потом во вью просто используйте вернутый вам AssetManeger url и все.
http://www.yiiframework.com/doc/api/1.1 ... ish-detail

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

        Yii::app()->assetManager->publish(
            Yii::app()->controller->module->basePath.'/scripts/clients.js',
            true,0,YII_DEBUG
        )
 

виджеты используются не мои. откуда мне знать какие там ресурсы подключаются. вернее узнать то я могу, но вся суть виджетов в том, что программисту должно быть всёравно что там они подключают, просто используешь его да и всё.
Skiller
Сообщения: 627
Зарегистрирован: 2011.11.27, 00:21

Re: renderPartial, registerScriptFile и аякс

Сообщение Skiller »

Пичалька тогда :)
Аватара пользователя
andy_s
Сообщения: 127
Зарегистрирован: 2012.01.22, 13:15

Re: renderPartial, registerScriptFile и аякс

Сообщение andy_s »

http://www.yiiframework.com/doc/api/1.1 ... ial-detail

Смотрим на последний аргумент.
Skiller
Сообщения: 627
Зарегистрирован: 2011.11.27, 00:21

Re: renderPartial, registerScriptFile и аякс

Сообщение Skiller »

andy_s писал(а):http://www.yiiframework.com/doc/api/1.1 ... ial-detail
Смотрим на последний аргумент.
и как это поможет? проблема в рендеренге, а не в том, чтобы вренуть все как строку не?
Ответить