Isolution666
@Isolution666
Full-Stack Developer

Как вписать атрибуты в ассеты javascript на Yii2?

Здравствуйте.
--
Есть ассет для лэйаута, в нём нужны атрибуты:
<script src="vendor/pace.js/pace.js" data-pace-options='{ "target": ".content-wrap", "ghostTime": 1000 }'></script>
<script id="test" src="vendor/underscore/underscore.js"></script>


Как их дописать здесь?
<?php

namespace frontend\assets;

use yii\web\AssetBundle;

/**
 * Main frontend application asset bundle.
 */
class AppAsset extends AssetBundle
{
    public $basePath = '@webroot';
    public $baseUrl = '@web';
    public $css = [
        'css/application.min.css',
    ];
    public $js = [
        'js/defina.min.js', // нужно добавить id и data-...
    ];
    public $depends = [
        'yii\web\YiiAsset',
        'yii\bootstrap\BootstrapAsset',
    ];
}


Кто сталкивался с этим?
На WordPress эту задачу выполняет функция типа:
...
function wpb_adding_scripts() {
    wp_register_script('script-defina', get_template_directory_uri() . '/js/defina.min.js','','1.1', true);    
    wp_enqueue_script('script-defina');    
}
add_action( 'wp_enqueue_scripts', 'wpb_adding_scripts' );
...


Значит на Yii2 тем более что-то подобное есть, или самому функцию дописывать?
Что-то типа:
...
    public function init()
    {
        if (\yii::$app->request->url == '/video') {
            $this->js[] = 'js/jquery.countdown.js', ['id' => 'test', 'data-pace-options' => '{ "target": ".content-wrap", "ghostTime": 1000 }'];
            $this->js[] = 'js/script.time.js';
        }
    }
...
  • Вопрос задан
  • 202 просмотра
Решения вопроса 1
webinar
@webinar Куратор тега Yii
Учим yii: https://youtu.be/-WRMlGHLgRg
https://www.yiiframework.com/doc/api/2.0/yii-web-a...

public $js = [
        'js/defina.min.js' => ['data-pace-options'=>'{ "target": ".content-wrap", "ghostTime": 1000 }']
    ];

Не помню наверняка, вложенность может быть иной, пробуй
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы