Ошибка при подключении скрипта через Asset

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Ответить
delgus
Сообщения: 55
Зарегистрирован: 2018.01.29, 14:07
Откуда: Ярославль

Ошибка при подключении скрипта через Asset

Сообщение delgus »

Вообщем решил написать расширение для wysiwyg. Взглянув на код https://github.com/2amigos/yii2-ckeditor-widget решил повторить нечто подобное для другого wysiwyg написанного на чистом js.
Развернул yii-app-basic. Само расширение создал через gii в папке runtime/tmp-extensions.
Чтоб автозагрузка классов работала добавил запись в composer.json проекта

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

    "autoload": {
        "psr-4": {
            "delgus\\knedlick\\": "runtime/tmp-extensions/yii2-knedlick-wysiwyg"
        }
    },
Ну и все работало, "HelloWorld" выводит)
Возникли проблемы при подключении скрипта с wysiwyg(написан на чистом js). Текст ошибки в консоли
Загрузка <script> по адресу «http://base.test/assets/afe01840/knedlick.js» не удалась. base.test:781
jQuery.Deferred exception: knedlick is not a function @http://base.test/:786:1
mightThrow@http://base.test/assets/fafcfa5/jquery.js:3583:21
resolve/</process<@http://base.test/assets/fafcfa5/jquery.js:3651:12
undefined
И это при том что файл knedlick.js в папке /assets/afe01840/ сгенерировался и там лежит преспокойно.

Код моего виджета

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

<?php

namespace delgus\knedlick;

use yii\helpers\Html;
use yii\widgets\InputWidget;

/**
 * This is just an example.
 */
class Knedlick extends InputWidget
{
    /**
     * @inheritdoc
     */
    public function init()
    {
        parent::init();
      //  $this->initOptions();
    }
    /**
     * @inheritdoc
     */
    public function run()
    {
        if ($this->hasModel()) {
            echo Html::activeTextarea($this->model, $this->attribute, $this->options);
        } else {
            echo Html::textarea($this->name, $this->value, $this->options);
        }
        $this->registerPlugin();
    }

    protected function registerPlugin()
    {
        $view = $this->getView();
        KnedlickAsset::register($view);
        $id = $this->options['id'];
        $view->registerJs('knedlick('.$id.')');
    }
}
Код KnedlickAsset

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

<?php

namespace delgus\knedlick;

use yii\web\AssetBundle;

class KnedlickAsset extends AssetBundle
{
    public $sourcePath = '@runtime/tmp-extensions/yii2-knedlick-wysiwyg/assets/';
    public $js = [
        'knedlick.js',
    ];
}
Наверное я как то не правильно использую AssetBundle. Подскажите пожалуйста, в чем моя ошибка и как правильно реализовывать такие вещи.
Может делал кто?) Заранее благодарче)
delgus
Сообщения: 55
Зарегистрирован: 2018.01.29, 14:07
Откуда: Ярославль

Re: Ошибка при подключении скрипта через Asset

Сообщение delgus »

B инструментах разработчика в Google Ghrome на вкладке Source этой папки не существует, он ее не видит почему-то , хотя она в реальности существует, совсем не понимаю что за магия
delgus
Сообщения: 55
Зарегистрирован: 2018.01.29, 14:07
Откуда: Ярославль

Re: Ошибка при подключении скрипта через Asset

Сообщение delgus »

Блиин) Моя ошибка. Неправильно файл в ресурсах назывался) там было kendlik.js а не kendlick.js)))
Ответить