Подтвердить что ты не робот

Angular Ошибка минимизации UI-Router - как я могу изменить разрешение синтаксиса, чтобы оно было основано на строках?

Я использую Angular UI-Router с функцией разрешения, но когда я минимизирую функцию разрешения, все мое приложение ломается, потому что синтаксис функции разрешения неверен для минимизации. Это должно быть String-Injection, основанное, как описано здесь. Я просто не знаю, как это написать. Любые предложения?

// 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
                }
            })
4b9b3361

Ответ 1

Как обычно вы это делаете, передавая массив решению:

resolve: {
    welcome: ['$q', function ($q) {
        var def = $q.defer();
        setTimeout(function () {
            def.resolve("Hello World!");
        },500);
        return def.promise;
    }]
}

С учетом этого вы можете определить свой var следующим образом:

var welcome = ['$q', function ($q) {
    var def = $q.defer();
    setTimeout(function () {
        def.resolve("Hello World!");
    },500);
    return def.promise;
}]

но это, конечно, не может быть повторно использовано, поэтому в этот момент я бы предложил переместить его в службу.