registerJsFile после registerJs

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Ответить
azz
Сообщения: 197
Зарегистрирован: 2016.07.06, 17:20

registerJsFile после registerJs

Сообщение azz »

Добрый день. В виде нужно подключить js файл после js кода, который на странице. Выглядит это примерно так:

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

$js = 'var types_json = "'. str_replace('"', '\"', json_encode($types, JSON_UNESCAPED_UNICODE)).'";'.PHP_EOL;
$js .= 'var types = JSON.parse(types_json);';
$js .= 'var new_record='.$model->isNewRecord.';';

$this->registerJs($js);
$this->registerJsFile('@web/js/js.js', ['depends' => 'yii\web\YiiAsset']);
в итоге $js должно стоять выше файла js.js. С приведённым выше кодом, файл подключается раньше. Подскажите, как это сделать?
Аватара пользователя
maleks
Сообщения: 1992
Зарегистрирован: 2012.12.26, 12:56

Re: registerJsFile после registerJs

Сообщение maleks »

$this->registerJs($js, View::POS_HEAD);
Аватара пользователя
porcelanosa
Сообщения: 570
Зарегистрирован: 2010.03.16, 04:31
Откуда: Москва

Re: registerJsFile после registerJs

Сообщение porcelanosa »

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

$this->registerJs($js, 'myJS');
$this->registerJsFile('@web/js/js.js', ['depends' =>[ 'yii\web\YiiAsset', 'myJS']]);
Так не прокатит?
Хотя нет
depends: array, specifies the names of the asset bundles that this JS file depends on.

Вариант, который предложил maleks - по-моему может не подойти. Код загрузится раньше всех, в шапке, и до YiiAsset - в приведенном примере YiiAsset не нужен, но мало ли.
mcintosh-club.ru - первый мой сайт с использование Yii //
Акустика Sonus Faber Hi-End класса//
Необрезная доска и другие пиломатериалы
Аватара пользователя
Dominus
Сообщения: 892
Зарегистрирован: 2013.03.14, 21:27
Откуда: Россия, Иваново
Контактная информация:

Re: registerJsFile после registerJs

Сообщение Dominus »

Тут посмотрите: viewtopic.php?t=16584
Не спорь с дураком, иначе окружающие не правильно поймут кто из вас дурак!
azz
Сообщения: 197
Зарегистрирован: 2016.07.06, 17:20

Re: registerJsFile после registerJs

Сообщение azz »

maleks писал(а): 2017.11.09, 14:03 $this->registerJs($js, View::POS_HEAD);
Да, так можно, но тогда придётся туда же переносить и jquery. Хотелось бы обойтись очерёдностью загрузки.
Dominus писал(а): 2017.11.09, 14:44 Тут посмотрите: viewtopic.php?t=16584
там не то
urichalex
Сообщения: 994
Зарегистрирован: 2015.08.07, 11:03

Re: registerJsFile после registerJs

Сообщение urichalex »

azz писал(а): 2017.11.09, 18:41 Да, так можно, но тогда придётся туда же переносить и jquery. Хотелось бы обойтись очерёдностью загрузки.
Зачем?
azz
Сообщения: 197
Зарегистрирован: 2016.07.06, 17:20

Re: registerJsFile после registerJs

Сообщение azz »

urichalex писал(а): 2017.11.09, 20:43 Зачем?
что бы весь яваскрипт грузился после отображения контента, видимо
Аватара пользователя
maleks
Сообщения: 1992
Зарегистрирован: 2012.12.26, 12:56

Re: registerJsFile после registerJs

Сообщение maleks »

azz писал(а): 2017.11.10, 12:30 видимо
загрузка "скриптов" после контента касается только js файлов
azz
Сообщения: 197
Зарегистрирован: 2016.07.06, 17:20

Re: registerJsFile после registerJs

Сообщение azz »

так всё-таки, можно ли управлять последовательностью registerJsFile и registerJsFile?
urichalex
Сообщения: 994
Зарегистрирован: 2015.08.07, 11:03

Re: registerJsFile после registerJs

Сообщение urichalex »

azz писал(а): 2017.11.10, 16:06 так всё-таки, можно ли управлять последовательностью registerJsFile и registerJsFile?
depends
Аватара пользователя
ElisDN
Сообщения: 5845
Зарегистрирован: 2012.10.07, 10:24
Контактная информация:

Re: registerJsFile после registerJs

Сообщение ElisDN »

azz писал(а): 2017.11.10, 16:06 так всё-таки, можно ли управлять последовательностью registerJsFile и registerJsFile?
https://github.com/yiisoft/yii2/blob/ma ... w.php#L581

Сначала jsFiles, потом JS с POS_END. Вместе никак.
Ответить