Импорт внешнего js-файла в другой внешний js-файл - PullRequest
0 голосов
/ 30 января 2019

В моем приложении ASP.Net Core MVC у меня есть отдельные файлы .js для нескольких страниц, они содержат обычную проверку и логику на стороне клиента.

Мне нужно поместить несколько методов в общий файл util.js иметоды этого файла будут доступны другим js-файлам.

, но я не могу добавить ссылку на этот util.js в другие внешние js-файлы.

Я пробовал несколько подходов, как

Например, My util.js

export function ShowAlert(val) {
alert(val);
}

А чем в другом js-файле (MyApp.js) с оператором импорта

import { ShowAlert } from './util'

function Info() {
    var F = document.getElementsByName('txtFName')[0].value
    var L = document.getElementsByName('txtLName')[0].value
    if (F.length > 0 && L.length > 0)
        ShowAlert(F + ' ' + L)
    else
        ShowAlert('Fields Required');
}

Но это дает ошибку в операторе импортаline

Неожиданный токен {

Чем я пытался использовать инструмент babel для совместимости с js браузераопределен, поэтому после поиска нескольких постов в интернете я нашел решение и включил require.js перед MyApp.js

<script src="./require.js" type="text/javascript"></script>
<script src="./MyApp.js" type="text/javascript"></script>

Но все равно ошибка

Имя модуля "util"еще не загружен для контекста: _.Использовать require ([])

Как получить ссылку на один файл js в другой и почему импорт дает ошибку здесь?

Обновление 1

Util.js

export default function ShowAlert(val) {
alert(val);}

MyApp.js

import { ShowAlert } from './util';
//var _util = require('./util');
function Info() {
    var F = document.getElementsByName('txtFName')[0].value
    var L = document.getElementsByName('txtLName')[0].value
    if (F.length > 0 && L.length > 0)
        ShowAlert(F + ' ' + L)
    else
        ShowAlert('Fields Required');
}

Ответы [ 2 ]

0 голосов
/ 30 января 2019

Чтобы использовать модули JavaScript на стороне клиента, вам необходимо:

Например:

index.html

<!DOCTYPE html>
<meta charset="utf-8">
<title>Test</title>
<h1>Test</h1>
<script type="module" src="main.js"></script>

main.js

import {sum} from './module.js';

const value = sum(1,2);
const node = document.createTextNode(value);
document.body.appendChild(node);

module.js

function sum(a,b) {
    return a + b;
}

export { sum }
0 голосов
/ 30 января 2019
  1. добавьте type = "module" в ваш app.ja (основной скрипт)

<script src="MyApp.js" type="module"></script>

Отдельная функция и экспорт делают это так (более читабельно):

function ShowAlert(val) { alert(val); } export { ShowAlert }

Если вы хотите экспортировать больше функций, сделайте следующее:

 export { ShowAlert ,  ShowAlert1 , ShowAlert2 , ShowAlert2}
Запустите ваш скрипт на HTTP serwer
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...