Microsoft Ajax Minifier を使用して JS を縮小する Cassette を使用しています。$scope
このミニファイアは、やなど、Angular にとって特別な意味を持つ変数を含む変数の名前を変更します$http
。だから Cassette は私のAngularコードを壊します!
どうすればこれを防ぐことができますか?
参考までに、これは壊れている Angular コードです。$scope
および$http
関数パラメーターの名前が変更されています。
// <reference path="vendor/angular.js" />
angular.module('account-module', [])
.controller('ForgottenPasswordController', function ($scope, $http) {
$scope.email = {
value: '',
isValid: false,
containerStyle: "unvalidated",
validate: function () {
var valid = isEmailAdressValid($scope.email.value);
$scope.email.isValid = valid;
$scope.email.containerStyle = valid ? "valid" : "invalid";
return valid;
},
removeErrorMessage: function() {
$scope.email.containerStyle = "unvalidated";
}
};
$scope.display = {
formClass: '',
congratulationsClass: 'hide'
};
$scope.submit = function (event) {
event.preventDefault();
var emailValid = $scope.email.validate();
if (emailValid) {
$http({
method: 'POST',
url: '/account/forgot-password',
params: { email: $scope.email.value },
headers: { 'Content-Type': 'application/x-www-form-urlencoded' }
}).success(function(data) {
$scope.success(data);
}).error(function() { $scope.error(); });
}
};
$scope.success = function (data) {
switch (data.Outcome) {
case 1:
$scope.display.formClass = "hide";
$scope.display.congratulationsClass = "";
break;
case 2:
$scope.email.containerStyle = "invalid";
break;
}
};
$scope.error = function () {
alert('Sorry, an error occurred.');
};
function isEmailAdressValid(emailAddress) {
return /[^\s@]+@[^\s@]+\.[^\s@]+/.test(emailAddress);
}
});