Angularjs:在app.config中注入服务,以防止缩小

时间:2015-11-25 16:52:17

标签: javascript angularjs

我正在尝试在app.config中注入一个服务,如app.config中的Inject服务所示。然而,缩小打破了应用程序。如何克服这个?

这不适用于缩小:

app.config(['$routeProvider',function ($routeProvider) {
    $routeProvider
        .when('/',
        {
            templateUrl: "partials/editor.html",
            controller: "AppCtrl",
            resolve: {
                       //Following method doesn't work with minification
                        data: getData
                     }
        })
     function getData (dbService) {
         return dbService.getData();
     }
}]);

请注意以下代码不起作用:( Typescript不允许编译)

['dbService',function getData(dbService){
               return dbService.getData();
}]

1 个答案:

答案 0 :(得分:4)

为了防止缩小,您需要像使用config函数一样注释(请参阅依赖性注释here)数据函数。

有两种方法可以做到这一点。

1

不是传递函数,而是传递一个包含依赖项名称和函数

的数组
app.config(['$routeProvider',function ($routeProvider) {
$routeProvider
    .when('/',
    {
        templateUrl: "partials/editor.html",
        controller: "AppCtrl",
        resolve: {
            //annotate this to prevent against minification
            data: ['dbService', getData]
        }
    })

    function getData (dbService) {
        return dbService.getData();
    }
}]);

2

将依赖项添加到函数的$ inject属性

app.config(['$routeProvider',function ($routeProvider) {
    $routeProvider
        .when('/',
        {
            templateUrl: "partials/editor.html",
            controller: "AppCtrl",
            resolve: {
                //function annotated below
                data: getData
            }
        })

    //annotate this function with $inject so proper dependencies injected after minification
    getData.$inject = ['dbService'];
    function getData (dbService) {
        return dbService.getData();
    }
}]);