javascript - AngularJS - 缩小错误

标签 javascript angularjs minify

我正在尝试缩小我的 Angular 应用程序中的 js 文件。我知道在依赖注入(inject)和缩小方面有一些 pbs,但我觉得我遵循了我在互联网上找到的最佳实践。

这是我的代码的结构:

我的提供商:

function myPvdr() {
  this.getUrl = function() {
    return 'http://some/api/call';
  };
  this.$get = function($q, $http) {
    var self = this;
    return {
      getData: function(points) {
        var d = $q.defer();
        $http({
          method: 'GET',
          url: self.getUrl(),
          cache: true
        }).success(function(data) {
          d.resolve(data);
        }).error(function(err) {
          d.reject(err);
        });
        return d.promise;
      }
    }
  }
}

我的 Controller :

function myCtrl($scope, MyProvider, localStorageService) {
     // some code
}

我的模块:

angular.module('myApp', ['LocalStorageModule', 'ngAnimate'])
  .provider('MyProvider', myPvdr)

  // Loading controllers into the module
  .controller('myCtrl', ['$scope', 'MyProvider', 'localStorageService', myCtrl])

未缩小时工作正常。但是在使用 grunt 的 uglify 任务后,我在控制台上打印了以下错误:

Error: [$injector:unpr] http://errors.angularjs.org/1.3.0-rc.2/$injector/unpr?p0=aProvider%20%3C-%20a%20%3C-%20MyProvider

我做错了什么?

最佳答案

您没有使代码压缩变得安全:

有两个选项,$注入(inject)或在声明函数时内联添加它并使用带引号参数的数组(引号中的内容不会缩小)

https://docs.angularjs.org/tutorial/step_05

在 Controller 函数上创建一个 $inject 属性,该属性包含一个字符串数组。数组中的每个字符串都是要为相应参数注入(inject)的服务的名称。在我们的例子中我们会这样写:

function PhoneListCtrl($scope, $http) {...}
PhoneListCtrl.$inject = ['$scope', '$http'];
phonecatApp.controller('PhoneListCtrl', PhoneListCtrl);

使用内联注释,您不仅提供函数,还提供数组。该数组包含服务名称列表,后跟函数本身。

function PhoneListCtrl($scope, $http) {...}
phonecatApp.controller('PhoneListCtrl', ['$scope', '$http', PhoneListCtrl]);

关于javascript - AngularJS - 缩小错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26024850/

相关文章:

css - 在网站的不同部分将 CSS 文件组合成缩小的 "chunks"是否明智?

asp.net - 我可以将 App_Themes css 文件与 Microsoft.Web.Optimization 捆绑在一起吗?

javascript - Chrome 中消失的图像

angularjs - 如何在Firebase托管中使用自定义域名电子邮件

java - 如何在url参数中发送阿拉伯消息

javascript - 如何在 Protractor 测试中使用 browser.getCurrentUrl()?

javascript - 在 javascript 崩溃时显示替代方案的最佳方法

javascript - 获取给定数字的除数的所有子集并检查它们是否不违反条件

javascript - 没有 jQuery 的淡入淡出

c# - 如何使用 bundle transformer 压缩 CSS 或 JS