Asp.net-Mvc

Mvc4 捆綁、縮小和 AngularJS 服務

  • February 16, 2013

有沒有辦法自定義 Asp.Net MVC4 捆綁和縮小功能縮小 js 文件的方式?

意思是,我不想完全關閉縮小,但“按原樣”它只會破壞 AngularJs。

由於 AngularJs 使用 DI 和 IoC 方法在控制器中註入服務,因此如下:

function MyController($scope) { }

縮小後,變為:

function MyController(n) { }

通常這不是問題,但 AngularJs 使用參數名稱來了解要注入的服務。所以 $scope 應該保持 $scope 以及角度控制器中的任何其他參數。其他所有內容,如局部變數等,都應該正常縮小。

我找不到任何關於如何配置 Mvc4 縮小的明確文件,而且“全有或全無”似乎相當愚蠢,所以我認為我遺漏了一些東西。

謝謝。

實際上,您可以(並且應該!)編寫 AngularJS 程式碼,因此它是“縮小安全的”。詳細資訊在http://docs.angularjs.org/guide/di的“依賴註釋”部分中進行了描述,但簡而言之,對於全域定義的控制器,您可以編寫:

MyController.$inject = ['$scope'];

請注意,全域定義的控制器正在污染全域命名空間(有關詳細資訊,請參閱內容),應避免使用。如果你在模組級別聲明一個控制器,你也可以使其縮小安全:

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

引用自:https://stackoverflow.com/questions/14909541