Vue & JavaScript error. Помогите пожалуйста
Прошу помощи, в vue новый. Скачал скрипт админ панели И нужно в vue view подключить в шаблоне JS файлы админской панели
Делаю так:
<script>
import Apex from "apexcharts";
import jQuery from "jquery";
import '../../assets/js/app.min'
import '../../assets/js/pages/demo.dashboard.js'
export default {
name: "Index",
// components: {AdminDashboardLayout},
data: function () {
return {}
},
}
и в файле App.min содержится код, и начинается он так
!function (i) {
"use strict";
function t() {
this.body = i("body"), this.window = i(window), this.menuContainer = i("#leftside-menu-container")
}
....
И Проблема в том, что когда я запускаю обычный файл панели, без vue, то все js отлично работают, но у меня всё идет плохо и при запуске даёт ошибку enter image description here
И по моему проблема в неверном подключении файлов js, но подключить их так же как в файле без vue я не могу, потому что в template нельзя подключать через script tag. Я пробовал разные своеобразные методы что то в роде document.head.addChild... и тут был тег скрипт , но vue не дал мне этого сделать
Мучаюсь уже второй день, помогите пожалуйста
Ответы (1 шт):
Когда скрипты подключаются через import, они работают как независимые модули, и переменные и функции, объявленные в одном скрипте, не видны в других. По-видимому, в App.min делается попытка вызвать функцию из другого скрипта. Посмотрите в конце файла, где делается собственно сам вызов.
Вам действительно нужно подключать эти скрипты через template. Не знаю, какой CMS вы пользуетесь, но в ней наверняка должны быть средства подключения скриптов.
Вот, например, как это делается в Битриксе (это не надо копировать в ваш код, это только пример):
<?
$APPLICATION->AddHeadString("<script type='module' src='{$templateFolder}/vue/AppOffer.js'></script>");
$APPLICATION->AddHeadScript(SITE_TEMPLATE_PATH . "/js/filter-list-map.js");
?>
То есть я указываю системе подключить скрипт с компонентом Vue, нужным для страницы, как модуль, и другой скрипт - как обычно.