Я изучаю Angularjs, и я пытаюсь создать службу для выполнения общих задач, которые необходимо выполнить для всех моих контроллеров.Angularjs Ошибка при попытке вызова метода из службы i определена
В настоящее время я получаю сообщение об ошибке:
TypeError: Cannot call method 'getAuthHeader' of undefined
app.js
var token = "mytoken"
var baseUrl = "mybaseUrl";
var myezteam = angular.module('myezteam', ['ui.bootstrap']);
myapp.config(function($routeProvider) {
$routeProvider
.when('/profile',
{
controller: 'ProfileController',
templateUrl: 'template.html'
})
.otherwise({redirectTo: '/profile'});
});
// This gets the basic information that is needed for every page
myapp.service('base', function() {
this.getAuthHeader = function($http) {
// Set authorization token so we know the user has logged in.
return $http.defaults.headers.common.Authorization = 'Bearer ' + token;
}
});
profile.js
myapp.controller('ProfileController', ['$scope', '$http', function($scope, $http, base) {
base.getAuthHeader($http); // <-- THIS LINE IS THROWING THE ERROR
}]);
Почему возникающую ошибку и как я могу это исправить ? Кроме того, есть ли способ настроить конфигурацию в моем приложении, так что мне не нужно вызывать base.getAuthHeader($http);
в каждом контроллере, но он будет автоматически вызван, когда каждый контроллер будет загружен?
Почему вы передаете '$ http' вокруг, как это? Выглядит запутанным ... Dependency Injection работает и в сервисах. – elclanrs
@elclanrs Можете ли вы уточнить? Я совершенно новый для AngularJS. – Catfish