【问题标题】:Angular code mangled causes "Unknown Provider" messageAngular 代码损坏导致“未知提供者”消息
【发布时间】:2014-06-12 21:17:35
【问题描述】:

我想破坏我的 AngularJS 文件,它几乎适用于整个部分。但是,当我单击应用程序并导航到使用 ngLazyBindangular-history 的唯一部分时,我收到以下问题:Error: [$injector:unpr] Unknown provider: aProvider <- a <- $lazyBind

我正在使用ngMin,希望这种事情不会发生。当我将 uglify 的 mangled 属性设置为 false 时,这个问题就消失了。

另一个小提示 - 将$lazyBind 注入控制器是导致错误的原因。我可以毫无问题地在应用程序中包含lazyBind,但是当我将$lazyBind 注入控制器时会出现错误。

我提到 angular-history 的原因是,如果我完全消除了lazyBind,Error: [$injector:unpr] Unknown provider: mProvider <- m <- History 会出现完全相同的错误。

【问题讨论】:

  • 您使用的是缩小版的 Angular 或缩小版的代码。无论哪种方式,都不要在开发中这样做,否则你会得到这些可理解的错误。
  • 这不是为了开发本身 - 我正在尝试制作一个可以工作的生产原型。

标签: javascript angularjs minify uglifyjs


【解决方案1】:

看起来这 2 个库不是缩小安全的...

angular-history 第 88 行...

angular.module('decipher.history', ['lazyBind']).service('History',
    function ($parse, $rootScope, $interpolate, $lazyBind, $timeout, $log,

从错误消息来看,$parse 似乎已重命名为 m,而 angular 无法解决它。

ngLazyBind 第 89 行相同...

app.factory("$lazyBind", lazyBindProvider);

【讨论】:

  • 我同意 - 它们看起来不安全。但是,我认为 ngMin 应该处理它。您对如何解决它有什么建议吗?
猜你喜欢
  • 1970-01-01
  • 2012-09-02
  • 2017-04-16
  • 2017-10-08
  • 2017-08-26
  • 2013-04-20
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多