通过System.js加载JS时如何通过onclick调用函数
How to call function through onclick when JS is loaded through System.js
我的 MVC 项目中有一个 typescript 文件已经变得非常大。我想分解使用 System.js 加载文件。
我在 _Layout.cshtml 视图中包含了 system.js 参考。
<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 访问这些功能。我在错误的地方做某事吗?或者我需要一种特定的方式来设置我的打字稿文件来调用该函数吗?
感谢您的帮助。
<div onclick="load('@item.Id')"></div>
这种老式的纯 html 绑定事件侦听器的方式要求 load
成为全局范围函数。
System.js 导入你的 main.js
,但我猜它有点把它限制在一个闭包中。 load
在全局范围内不再可访问,因此是错误。
我的 MVC 项目中有一个 typescript 文件已经变得非常大。我想分解使用 System.js 加载文件。
我在 _Layout.cshtml 视图中包含了 system.js 参考。
<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 访问这些功能。我在错误的地方做某事吗?或者我需要一种特定的方式来设置我的打字稿文件来调用该函数吗?
感谢您的帮助。
<div onclick="load('@item.Id')"></div>
这种老式的纯 html 绑定事件侦听器的方式要求 load
成为全局范围函数。
System.js 导入你的 main.js
,但我猜它有点把它限制在一个闭包中。 load
在全局范围内不再可访问,因此是错误。