当丑陋的时候,angular.bootstrap似乎打破了

时间:2015-03-27 14:15:17

标签: angularjs uglifyjs

我有以下代码,在编译时我运行了ngAnnotate和uglify

angular.bootstrap(navWrap, ['my.navbar']);

现在我知道这有点不同寻常,但是在没有缩小的时候它会起作用。但是,当我尝试缩小它时会导致提供程序未找到异常。

this is a similar question仅建议我使用ngMin(ngAnnotate)。如果我关闭损坏然后一切正常,但这似乎是一个坏主意。

如果我只是更改为标签中的ng-app,它可以正常工作。有什么想法吗?

1 个答案:

答案 0 :(得分:1)

ng-annotate无法检测到需要注入注释的所有部分。例如,路由中使用的resolve属性不会自动注释:

app.config(function ($routeProvider) {
  $routeProvider.when('/', {
    templateUrl: 'home.html',
    controller: 'HomeCtrl',

    resolve: {

      // This needs annotations when minimized

      myArgument: function(myService) {
        return myService.getMyArgument();
      }
    }

  }).otherwise({
    redirectTo: '/'
  });
});

所以你可以自己注释......:

resolve: {
   // This needs annotations when minimized

  myArgument: ['myService', function(myService) {
    return myService.getMyArgument();
  }]
}

...或者尝试使用" ngInject"来标记它,这应该有助于注释以找到需要注入的函数:

resolve: {
   // This needs annotations when minimized

  myArgument: function(myService) {
    "ngInject";
    return myService.getMyArgument();
  }
}