asp.net-mvc - Mvc4 捆绑、缩小和 AngularJS 服务

标签 asp.net-mvc asp.net-mvc-4 angularjs bundling-and-minification

有没有办法自定义 Asp.Net MVC4 捆绑和缩小功能缩小 js 文件的方式?

意思是,我不想完全关闭缩小,但“按原样”它只会破坏 AngularJs。

由于 AngularJs 使用 DI 和 IoC 方法在 Controller 中注入(inject)服务,因此如下:

function MyController($scope) { }

缩小后,变为:
function MyController(n) { }

通常这不是问题,但 AngularJs 使用参数名称来了解要注入(inject)的服务。所以 $scope 应该保持 $scope 以及 Angular Controller 中的任何其他参数。其他所有内容,如局部变量等,都应该正常缩小。

我找不到任何关于如何配置 Mvc4 缩小的明确文档,而且“全有或全无”似乎相当愚蠢,所以我认为我遗漏了一些东西。

谢谢。

最佳答案

实际上,您可以(并且应该!)编写 AngularJS 代码,因此它是“缩小安全的”。详细信息在 http://docs.angularjs.org/guide/di 的“依赖注解”部分中描述。但简而言之,对于全局定义的 Controller ,您可以编写:
MyController.$inject = ['$scope'];
请注意,全局定义的 Controller 会污染全局命名空间(参见 this 了解更多详细信息),应避免使用。如果你在模块级别声明一个 Controller ,你也可以使其缩小安全:

angular.module('mymodule', []).controller('MyController', ['$scope', function($scope){
//controller code goes here
}]);

关于asp.net-mvc - Mvc4 捆绑、缩小和 AngularJS 服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14909541/

相关文章:

jquery - 读取 select 中的选项值

c# - 使用 Html.BeginForm 提交搜索值

asp.net-mvc-4 - MVC 4 中的 ClientValidationEnabled 和 UnobtrusiveJavaScriptEnabled

javascript - 如何仅使用带有 angularjs 的选项卡打开不同的不同 View html 页面

asp.net-mvc - 设置 Kendo UI Grid Popup (MVC) 的宽度

c# - 将特殊字符转换为普通字符

javascript - ASP.NET MVC4,Javascript 中的 Razor : Page runs but Syntax Error in VS2012

javascript - AngularJS:如何访问自定义指令中的 input[date] min 属性?

javascript - 在AngularJS中使用 Protractor 单击单元测试中的超链接

javascript - 具有多个路由监听事件的 Angular 单页应用程序中的 SignalR