Angularjs: Внедрить Сервис в app.config так, чтобы на него не влияла минификация

0

Я пытаюсь внедрить службу в app.config, как показано в службе Inject в app.config. Однако минимизация нарушает приложение. Как преодолеть это?

Это не работает с минимизацией:

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

3 ответа

0
Лучший ответ

Чтобы защитить от минимизации, необходимо массировать аннотацию функции с помощью зависимостей службы.

Вместо передачи только функции передайте массив с именами зависимостей и функции.

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();
    }
}]);
1

Вам нужно ввести его, используя аннотацию встроенного массива, как указано в угловых документах.

Careful: If you plan to minify your code, your service names will get renamed and break your app.

Как указано в документах,

someModule.controller('MyController', ['$scope', 'greeter', function($scope, greeter) {
  // ...
}]);

В твоем случае,

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

Справа отсюда: Angularjs: Inject Service в app.config, чтобы защитить от минимизации

  • 0
    Это называется «аннотация встроенного массива» - см. Docs.angularjs.org/guide/di
  • 0
    @tylerwal Спасибо за указание на это. Ред.
Показать ещё 5 комментариев
0

обратитесь к угловому впрыску. пытаться,

app.config(["$routeProvider", function ($routeProvider) {
    $routeProvider
        .when('/',
        {
            templateUrl: "partials/editor.html",
            controller: "AppCtrl",
            resolve: {
                       //Following method doesn't work with minification
                        data: function (dbService) {
                                 return dbService.getData();
                              }
                     }
        })
}]);
  • 0
    Пожалуйста, внимательно ознакомьтесь с кодом. Я упоминал, что проблема была с включением службы dbService, а не с $ routeProvider

Ещё вопросы

Сообщество Overcoder
Наверх
Меню