我正在尝试在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();
}]
答案 0 :(得分:4)
为了防止缩小,您需要像使用config函数一样注释(请参阅依赖性注释here)数据函数。
有两种方法可以做到这一点。
不是传递函数,而是传递一个包含依赖项名称和函数
的数组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();
}
}]);
将依赖项添加到函数的$ 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();
}
}]);