我正在自学Angular2 (显然,这是未来的潮流),我正在进行实验。我在这里遵循了易卜拉欣·乌卢达格的教程:
http://www.ibrahimuludag.com/2016/01/angular2-and-visual-studio.html
这就很好用了。但我想更进一步,使用MVC项目,而不是易卜拉欣建议的TypeScript项目。我使用了一个简单的结构(一个控制器,一个视图),并将Angular2 JavaScript引用添加到我的视图中(以及header、body等)。我必须在文件名前加上一个斜杠,否则服务器会将它们解释为控制器/视图引用。这部分工作得很好。
我遇到的问题是这个命令:
System.config ({
packages: {
app: {
format: 'register',
defaultExtension: 'js'
}
}
});
System.import ('app/boot')
.then (null, console.error.bind(console));我可以从调试器中看到它正在尝试查找http://localhost/Default/app/boot --“默认”部分是我的控制器的名称(当我在直接的JavaScript引用中没有包括斜杠时,同样的问题也会出现)。我试过在"app/boot“前加上一个斜杠("/app/boot"),这样就行得通了:它会找到boot.ts,但不会找到任何依赖项,再一次将控制器名称添加到URL中。
有没有人有任何建议,或者至少有一个参考,我可以在哪里找到关于System.import指令的信息?
谢谢。
发布于 2016-06-29 01:25:37
首先,我要赞扬您深入了解angular2的世界。
System.import是SystemJS的一部分。SystemJS是angular 2使用的一个模块加载器,而新的奇特的javascript规范最终确定并由浏览器实现。
有关System.import的更多信息,请参阅:https://github.com/systemjs/systemjs
我相信你的问题在于MVC提供静态文件的方式,而不是SystemJs试图加载模块的方式。
请参阅本文:Using ASP.NET routing to serve static files
在RouteConfig.cs文件中:
routes.IgnoreRoute("app/{file}.js");这应该会告诉MVC忽略位于项目根目录下的app文件夹中的js文件。然后,SystemJS应该能够正确加载您的模块。
https://stackoverflow.com/questions/38082367
复制相似问题