Я читал многочисленные сообщения о stackoverflow, и им не помогло. У меня странная ситуация, когда мне нужно ввести Factory в контроллер и все кажется регулярным, но оно не работает.AngularJS injection Factory in Controller странная ошибка
Вот фабрика:
zimmerApp.factory('AuthService', [function ($http, $sanitize) {
var sanitizeCredentials = function (credentials) {
return {
email: $sanitize(credentials.email),
password: $sanitize(credentials.password),
csrf_token: credentials.csrf_token
};
};
return {
login: function (credentials) {
var login = $http.post("/login", sanitizeCredentials(credentials));
login.success(cacheSession);
login.error(loginError);
return login;
}
};
}]);
и контроллер, в котором мне нужно использовать AuthService является:
zimmerApp.controller('loginCtrl', ['$scope', 'AuthService',
function ($scope, $location, AuthService) {
var xhReq = new XMLHttpRequest();
xhReq.open("GET", "http://" + window.location.hostname + ":8000/auth/token", false);
xhReq.send(null);
$scope.error = false
$scope.credentials = {
username: '',
password: '',
csrf_token: xhReq.responseText
};
$scope.login = function (credentials) {
AuthService.login($scope.credentials)
.success(function() {
$location.path('/');
})
.error(function (err) {
console.log('error')
});
}
}]);
Ошибка я получаю
TypeError: Cannot read property 'login' of undefined
поэтому кажется, что он не признает AuthS ervice завод почему-то.
Кто-нибудь знает, что я могу сделать, чтобы исправить это, у меня действительно нет идеи.
Не используется массив INJECT прекрасно, если вы не Минимизировать/уродовать СВОЙ Код – Phil
Ну, это был действительно хороший совет, не используя массив. Это будет полезно. – T0plomj3r
Вот почему удивительные люди сделали такие вещи, как grunt-ng-annotate, поэтому вы можете добавить эти аннотации, прежде чем сжимать свой код. – Enzey