Я добавляю аутентификацию маршрута в свое угловое приложение.
По какой-то причине, когда я пытаюсь перейти к представлению logentries
, я не могу выполнить код в функции resolve
.
Я добавил точку останова с помощью инструментов разработчика Chrome, но она не сработала.
Однако представление загружается.
Я думал, что разрешение будет получено до создания экземпляра контроллера и отображения представления.
Почему это не так?
(function () {
'use strict';
angular.module('app')
.config(appConfig)
.run(routeAuthentication);
routeAuthentication.$inject = ['$rootScope', '$location'];
function routeAuthentication($rootScope, $location) {
$rootScope.$on('$routeChangeError', function (event, current, previous, rejection) {
if (rejection === 'Not Authenticated') {
console.log('Not Authenticated for Route');
$location.path('/');
}
});
}
appConfig.$inject = ['$routeProvider'];
function appConfig($routeProvider) {
$routeProvider
.when("/logentries", {
templateUrl: "app/views/logEntries.html",
controller: "logEntries",
resolve: function ($q, $location) {
// Code not entering here as far as I can tell.
var deferred = $q.defer();
deferred.resolve();
if (true) { // TODO - use authenticationServce
$location.path('/login');
}
return deferred.promise;
}
})
// other routes
};
})();
resolve
должно быть свойством, а не функцией - person Maria Ines Parnisari   schedule 11.04.2016