Yii2-получение ошибок типа и ссылки в консоли - PullRequest
0 голосов
/ 28 августа 2018

Я работаю над Yii2. В моей консоли я получаю 2 типа ошибок.

  1. Uncaught TypeError: Невозможно прочитать свойство 'fn' из неопределенного в bootstrap-show-password.min.js: 6 в bootstrap-show-password.min.js: 6

Строка ошибки bootstrap-show-password at var i=e.fn.password;e.fn.password=function()......}(window.jQuery);

  1. Uncaught ReferenceError: $ st не определен at common.js: 263

Строка ошибки общая при if ($st && $stats && blockingRules && setupUser && !window.forceReload)..

Ниже мое объявление в main.php файле

<?php $this->beginPage() ?>
<!DOCTYPE html>
<html lang="<?= Yii::$app->language ?>">
<head>
<meta charset="<?= Yii::$app->charset ?>">
<meta name="viewport" content="width=device-width, initial-scale=1">
<?= Html::csrfMetaTags() ?>
<title><?= Html::encode($this->title) ?></title>
<?php $this->head() ?>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.5.0/css/font-awesome.min.css">
<!-- Ionicons -->
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/ionicons/2.0.1/css/ionicons.min.css">
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-show-password/1.0.3/bootstrap-show-password.min.js"></script>
</head>
<body class="hold-transition skin-blue sidebar-mini">
<?php $this->beginBody() ?>

Обновление 1

Некоторые скрипты в моем main.php

<script>
$(document).ready(function () {
    $('.listing-img').on('click', function () {
        $('#modal-img-tag').attr('src', $(this).attr('src'));
        $('#image-view-modal').modal();
    });
});
</script>
<script>
var data = [];
<?php foreach(\app\models\Roles::toArrayList() as $k=>$v){?>
data.push({id:<?=$k?>, text: '<?=$v?>'});
<?php } ?>
if($(".select2-selection").length>0) {
    $(".select2-selection").select2({
        data: data,
        allowClear: true,
        placeholder: "Select a Role",
        multiple: true
    });
}
</script>
<script src="https://cdn.rawgit.com/MrRio/jsPDF/master/dist/jspdf.min.js"> 
</script>
<div id="pdf-editor"></div>
</body>
</html>
<?php $this->endPage() ?>

Я искал их обоих для yii2/yii, но не смог найти подходящего решения

Как мне избавиться от этих ошибок?

Любая помощь будет принята с благодарностью.

1 Ответ

0 голосов
/ 29 августа 2018

В ваш файл макета вы включаете файл bootstrap-show-password.js, используя тег <script>.

<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-show-password/1.0.3/bootstrap-show-password.min.js"></script>

и это тоже внутри раздела <head>, тогда как по умолчанию, если вы используете AssetManager или registerJsFile, это добавит сценарии в конец страницы перед тегом </body>, а bootstrap-show-password.js должно быть загружается после библиотек jquery и bootstrap js, а не до этого, см. последовательность ниже демонстрационной версии bootstrap-show-password

 <script src="assets/jquery.min.js"></script>
 <script src="assets/bootstrap-v2/js/bootstrap.js"></script>
 <script src="bootstrap-show-password.js"></script>

Именно поэтому вы получаете сообщение об ошибке

Uncaught TypeError: Невозможно прочитать свойство 'fn' из неопределенного в bootstrap-show-password.min.js: 6 в bootstrap-show-password.min.js: 6

ваши jquery и bootstrap загружаются в нижнюю часть страницы, а не в заголовок.

Вы должны заменить тег script на

$this->registerJsFile('https://cdnjs.cloudflare.com/ajax/libs/bootstrap-show-password/1.1.2/bootstrap-show-password.min.js',[
    'depends'=> \yii\bootstrap\BootstrapAsset::class
]);

чтобы файл загружался после библиотек начальной загрузки и jquery.

А про другую ошибку

Uncaught ReferenceError: $ st не определен в common.js: 263

Это связано с тем, что какое-то расширение установлено в вашем браузере Chrome по ссылке, которую вы указали, при поиске расширений Chrome с таким именем, которое вы можете попробовать использовать в любом другом браузере, например FF или IE, поскольку демо-URL не загружает этот конкретный URL. для меня при использовании chrome ни файл common.js нигде не включен ни в макет, ни файлы AssetManager.

...