Работа с Frontend на Yii 2

В данном документе приведены типовые задачи и ошибки, которые возникают при работе с фронтенд частью.

Javascript при работе с Yii 2

  1. Не рекомендуется возвращать false в обработчиках событий. Если требуется предотвратить действие браузера по умолчанию, то следует использовать метод preventDefault().
  2. В случае, когда нужно предотвратить всплытие (bubbling) события к родительским элементам, следует использовать метод stopPropagation().
  3. Если требуется предотвратить работу всех последующих обработчиков конкретного события на данном элементе, следует использовать метод stopImmediatePropagation.
  4. Название переменных, содержащих объекты jQuery, рекомендуется начинать с символа $.

Ресурсы (AssetBundles)

  1. Для подключения ресурсов (js/css файлов) следует использовать AssetBundles.

    1. class FlushAsset extends \yii\web\AssetBundle
    2. {
    3. /**
    4. * @inheritdoc
    5. */
    6. public $sourcePath = '@common/modules/main/assets/src';
    7. /**
    8. * @inheritdoc
    9. */
    10. public $css = [
    11. ];
    12. /**
    13. * @inheritdoc
    14. */
    15. public $js = [
    16. 'js/flush.js'
    17. ];
    18. /**
    19. * @inheritdoc
    20. */
    21. public $depends = [
    22. 'yii\web\YiiAsset'
    23. ];
    24. }
  2. AssetBundles, которые необходимо реализовать в рамках определенного модуля, должны располагаться в отдельной папке assets внутри самого модуля.
  3. Подключаемые файлы js/css в рамках реализованного AssetBundle должны находиться в отдельной папке “src”, которая в свою очередь располагается внутри assets: