我的MVC项目中有一个打字稿文件,该文件已经变得很大。我想用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访问功能。我在错误的地方做什么吗?还是我需要设置打字稿文件来调用该函数的特定方法?
感谢您的帮助。
答案 0 :(得分:1)
<div onclick="load('@item.Id')"></div>
这种绑定事件侦听器的老式方法,要求load
是全局作用域函数。
System.js导入了您的main.js
,但我想它有点像是封闭的。 load
在全局范围内不再可用,因此该错误。