2017-09-29 13 views
0

我将SystemJS添加到我的项目中,但我仍然需要使用BundleConfig.cs中定义的一些捆绑包。我想使用SystemJS导入依赖项,但是我不能渲染我自己的代码,直到加载这些依赖项。如何在MVC中的JavaScript博客中调用Scripts.Render?

这是我的CSHTML文件

<html lang="en" ng-app="app"> 
<head> 
    <meta charset="utf-8" /> 
    <meta name="viewport" content="width=device-width" /> 
    <title>My-App</title> 

    @Scripts.Render("~/bundles/base") // SystemJS and polyfills 

</head> 

<body> 
    <script> 
     System.import("angular") 
     .then(function() { 

      // THIS IS WHERE I WOULD LIKE TO RENDER ANOTHER BUNDLE 

      }) 
    </script> 
<body> 
</html> 

只是推搡@Scripts.Render到脚本块打破了HTML脚本解析 - 因为所有所做的是注入了一堆脚本标签。

请注意,我特别寻找MVC cshtml解决方案,这将允许我打电话给我的预定义包 - 我希望避免手动为我的项目中的每个文件编写脚本导入。

+0

相关,虽然这专门有做MVC脚本捆绑 – tcmoore

+0

没有,它注入一个单独的脚本标记每个文件在包 – tcmoore

+0

至少调试 – tcmoore

回答

1

首先,为了在JavaScript中动态地加载脚本,您将不得不使用硬编码的路径引用。正如你想象的那样,你不能使用像Scripts.Render这样的东西。

但是,如果您了解捆绑系统的工作原理,这不是一个问题。您创建的包,即~/bundles/base,实际上是到该包的路由。换句话说,你可以从字面上做这样的事情:

<script src="/bundles/base"></script> 

并且将包括捆绑的JavaScript。所以只需在脚本加载器中使用该路由。

+0

谢谢!这就是我最终做的事情 - 不要少使用System.import – tcmoore