Ich benutze Angular UI-Router mit einer Auflösungsfunktion, aber wenn ich die Auflösungsfunktion reduziere, bricht meine gesamte Anwendung ab, weil die Auflösungsfunktionssyntax nicht korrekt für die Minimierung ist. Es muss auf String-Injection basieren, wie beschrieben here. Ich bin mir nicht sicher, wie ich es schreiben soll. Irgendwelche Vorschläge?Angular UI-Router Fehlerminimierung - Wie kann ich die Resolve-Syntax zu String Injection Based ändern?
// Resolves
var checkAuthentication = function($q, $location, $rootScope, Users) {
if ($rootScope.user) return true;
if (!$rootScope.user) {
var deferred = $q.defer();
Users.get(null, function(user) {
if (!user) {
window.location = '/';
return false;
}
console.log('User fetched: ', user);
$rootScope.user = user;
deferred.resolve();
}, function() {
window.location = '/';
return false;
});
return deferred.promise;
}
};
// Routes
angular.module('Dashboard').config(['$stateProvider', '$urlRouterProvider',
function($stateProvider, $urlRouterProvider) {
// For any unmatched url, redirect to '/'
$urlRouterProvider.otherwise('/dashboard');
// Now set up the states
$stateProvider
.state('dashboard', {
url: '/dashboard',
templateUrl: 'views/content/dashboard.html',
resolve: {
checkAuthentication: checkAuthentication
}
})
Vermissen Sie den Rest Ihres '.module (" Dashboard ")' func - sonst fehlen die schließenden Klammern und was npt – tymeJV
Würden Sie es nicht auf die gleiche Weise wie mit der .config übergeben? als ein Array? –
tymeJV - Ich habe einfach die .config-Funktion als Referenz eingefügt, das ist also nicht das Problem. Das Problem tritt nur bei der Syntax der checkAuthentication-Funktion auf. – ac360