Как вызвать функцию через onclick при загрузке JS через System.js - PullRequest
0 голосов
/ 10 апреля 2019

В моем проекте MVC есть машинописный файл, который стал довольно большим.Я хочу разбить его, используйте System.js для загрузки файлов.

Я включил ссылку на system.js в свое представление _Layout.cshtml.

<script src="~/Scripts/system.js"></script>
<script>
    $(document).ready(function ()
    {
        System.import("Scripts/main.js");
    });
</script>

Мой файл main.tsесть функция, которая загружает элемент.

function load(id: string): void
{
    // Stuff
}

В моем представлении Index.cshtml у меня есть div, который вызывает функцию при нажатии.

<div onclick="load('@item.Id')"></div>

Но каждый раз, когда я нажимаю наdiv Я получаю следующую ошибку в консоли:

Uncaught ReferenceError: load is not defined at HTMLDivElement.onclick ((index):41)

Глядя на сетевой трафик, я вижу, что main.js загружается system.js.Но по какой-то причине функции не могут быть доступны через HTML.Я делаю что-то не в том месте?Или есть какой-то особый способ настроить мой файл машинописи для вызова функции?

Спасибо за любую помощь.

1 Ответ

1 голос
/ 11 апреля 2019

<div onclick="load('@item.Id')"></div> Этот способ привязки прослушивателя событий старой школы pure-html требует, чтобы load была функцией глобальной области видимости.

System.js импортирует ваш main.js, но он как бы ограничивает егов закрытии я думаю.load больше не доступен в глобальной области видимости, поэтому ошибка.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...