重构AngularJs的路由配置



我有以下路由配置,其中有几个URL必须根据某个函数的值进行解析。这里的代码片段:

 $routeProvider
            .when('/url_with_restrictions', {
                templateUrl: '/pages/private/add_entity/add_gasstation.html',
                controller: 'ControllerName',
                // restrict angularjs routing
                resolve: {
                    validate: functionToBeInjected(){ 
                         var validateAccess = $q.defer();
                         return validateAccess.promise;
                    }
                }
        })

如何定义函数functionToBeInjected()并在控制器的每个resolve中使用它?

您可以提取一个函数来设置路由

function addRoute(url, template, controller) {
  functionToBeInjected = ...
  $routeProvider
        .when(url, {
            templateUrl: template,
            controller: controller,
            // restrict angularjs routing
            resolve: {
                validate: functionToBeInjected(){ 
                     var validateAccess = $q.defer();
                     return validateAccess.promise;
                }
            }
    })
};

最新更新