AngularJS 错误:缩小后的 $injector:modulerr

2024-02-24

嘿伙计们我收到一个错误Error: $injector:modulerr当我缩小 Angular JS 1 应用程序时,到目前为止,我已经研究过这是我调用依赖项的方式HomeController但是我不确定我可能哪里出错了。我注意到这里有一些预先存在的问题,但是我找不到解决这个问题的答案。

我感觉对该控制器的依赖可能是问题所在:

  function HomeController($http, $firebaseArray, $scope, $scrollArray) {
    var vm = this;
    var baseRef = new Firebase("https://racoon.firebaseio.com/yello");
    vm.feeds = $scrollArray(baseRef, 'date');

        vm.config = {
            plugins: {
                controls: {
                    autoHide: true,
                    autoHideTime: 1000
                }
            }
        };
}

因为代码被缩小了,所以我猜测函数中调用的依赖项正在以某种方式被破坏。

所以我尝试将它们注入到函数下面:

HomeController.$inject = ['$http', '$firebaseArray', '$scope', '$scrollArray'];

这是我的应用程序的所有 JS,以防万一不是这个控制器导致了这种情况:

 (function() {
  'use strict';

  angular
    .module('thatsPulman', [
      // Angular modules.
      'ngSanitize',

      // Third party modules.
      'firebase',

      // Custom modules.
      'app.core'
    ])

})();

(function() {
  'use strict';
  angular.module('app.core', ['iso.directives', 'ngSanitize', 'linkify', 'angular-images-loaded', 'imagesLoaded', 'yaru22.angular-timeago','infinite-scroll','com.2fdevs.videogular', 'com.2fdevs.videogular.plugins.controls', 'com.2fdevs.videogular.plugins.overlayplay'], function($interpolateProvider) {
    $interpolateProvider.startSymbol('<%');
    $interpolateProvider.endSymbol('%>');
});

})();

(function() {
  'use strict';

  angular
    .module('app.core')
    .controller('HomeController', HomeController)
    .factory('$scrollArray', scrollArray);

  function HomeController($http, $firebaseArray, $scope, $scrollArray) {
    var vm = this;
    var baseRef = new Firebase("https://racoon.firebaseio.com/yello");
    vm.feeds = $scrollArray(baseRef, 'date');

        vm.config = {
            plugins: {
                controls: {
                    autoHide: true,
                    autoHideTime: 1000
                }
            }
        };
}
HomeController.$inject = ['$http', '$firebaseArray', '$scope', '$scrollArray'];

  function scrollArray($firebaseArray, $timeout) {
    return function(baseRef, field) {
      // create a special scroll ref
      var scrollRef = new Firebase.util.Scroll(baseRef, field);
      // generate a synchronized array with the ref
      var list = $firebaseArray(scrollRef);
      // store the scroll namespace on the array for easy ref
      list.scroll = scrollRef.scroll;
      list.scroll.next(10);
      return list;

  }}



})();

(function() {
  'use strict';

  angular
    .module('app.core')
    .directive('imagesLoaded', imagesLoaded)
    .directive('scroll', scroll);

  function imagesLoaded($timeout) {
    return {
        restrict: 'A',
        link: function($scope, $elem, $attr) {

            $timeout(function() {
                $elem.isotope();

                $elem.isotope('once', 'layoutComplete', function(isoInstance, laidOutItems) {
                    $elem.imagesLoaded(function() {
                        $elem.isotope('layout');
                    });
                });
            }, 0);
        }
    };
  }

function scroll($window) {
      return function(scope, element, attrs) {
          angular.element($window).bind("scroll", function() {
               if (this.pageYOffset >= 300) {
                   scope.showContent = true;
               } else {
                   scope.showContent = false;
               }
              scope.$apply();
          });
      };
  };

})();

(function() {
  'use strict';

  angular
    .module('app.core')
    .filter('instagramLink', instagramLink);

    function instagramLink($filter, $sce) {
      return function(text, target) {
        if (!text) return text;

        var replacedText = $filter('linky')(text, target);
        var targetAttr = "";
        if (angular.isDefined(target)) {
            targetAttr = ' target="' + target + '"';
        }

        // replace #hashtags
        var replacePattern1 = /(^|\s)#(\w*[a-zA-Z_]+\w*)/gim;
        replacedText = replacedText.replace(replacePattern1, '$1<a href="https://www.instagram.com/explore/tags/$2"' + targetAttr + '>#$2</a>');

        $sce.trustAsHtml(replacedText);
        return replacedText;
      };
    };

})();

知道我哪里可能出错吗?谢谢


缩小正在破坏代码,因为您正在使用隐式注释 https://docs.angularjs.org/guide/di#implicit-annotation用于依赖注入。

隐式注释

小心:如果你打算minify http://en.wikipedia.org/wiki/Minification_(programming)您的代码、您的服务名称将被重命名并破坏您的应用程序。

类似的工具ng-注释 https://github.com/olov/ng-annotate让您在应用程序中使用隐式依赖注释,并在缩小之前自动添加内联数组注释。如果您决定采用这种方法,您可能想要使用ng-strict-di.

由于这些注意事项,我们建议避免这种注释风格。

--AngularJS 开发者指南——依赖注入 https://docs.angularjs.org/guide/di#implicit-annotation

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

AngularJS 错误:缩小后的 $injector:modulerr 的相关文章

随机推荐

  • 如何使用MomentJS将自定义日期设置为react-datepicker的DatePicker?

    我已将日期存储在数据库中 我可以成功获取日期 但是当涉及到将任何特定日期设置为 DatePicker 时反应日期选择器 https www npmjs com package react datepicker 我无法设定那个日期 这是我用来
  • 模拟会话在 MVC 5 中不起作用

    我将值存储在正在测试的控制器操作的会话中 我读过几篇关于如何模拟会话的文章 我正在尝试实现 Milox 的答案在单元测试中设置 httpcontext 当前会话 https stackoverflow com questions 96242
  • 如何在 Apple Watch 上绘制自定义图形?

    如何在 Apple Watch 上绘制自定义图形 如果我理解正确的话 我们只能在 Apple Watch 上使用图像和标准控件 如果是这样 是否可以在内存中的图像上绘制自定义图形 然后将这些图像放到屏幕上 In watchOS2你可以借鉴W
  • std::vector::resize() 与 gcc 4.7.0 的奇怪行为

    我仍然对 的行为感到困惑std vector resize 考虑以下代码 另请参阅std vector 的类型要求 https stackoverflow com questions 12251368 type requirements f
  • 如何检测包含(水平)合并单元格的 Word 表格?

    当 Word 表格包含水平合并的单元格时 访问 Table Columns First 或对 Table Columns 执行 Foreach 将导致错误 有没有办法确定表格是否包含水平合并的单元格而不导致错误 我读了确定Word单元格是否
  • 带替换的 Blob.decode 似乎不起作用

    这段代码 my or blob Blob new or ords or blob decode ascii replacement 0 strict False say 失败 Will not decode invalid ASCII co
  • 为静态 sqlite3* 句柄调用 sqlite3_close

    我想在 Objective C 中提供对 sqlite 数据库的访问 我不希望调用者担心数据库本身 所以我打算在我的 DataStore m 中做这样的事情 import DataStore h import
  • 如何将项目推送到 Vuejs 数据对象的数组中? Vue 似乎没有关注 .push() 方法

    我正在尝试将对象添加到我在 Vue 实例数据对象中声明的数组中 我可以在状态的购买对象中设置值 但是当我将数据推送到订单队列数组中时 不会填充空数组 函数正在被触发 但数组没有更新 这是我的表格
  • 如何在Eclipse插件中以编程方式设置TextEditor的字符串输入?

    我想要的是 我想为我的 Eclipse 编辑器插件编写 JUnit 测试 为此我想设置一个我的实例TextEditor扩大 然后我想设置这个的输入TextEditor来自字符串 因此字符串的内容是编辑器实例的输入 然后我想运行一些测试并断言
  • ISR 和中断处理程序之间有区别吗?

    我正在研究操作系统 并且遇到了 ISR 和中断处理程序这两个术语 它们是同一机制的两个词吗 如果不是 有什么区别 中断处理程序和 ISR 没有区别 Wiki http en wikipedia org wiki Interrupt hand
  • 如何保持Javascript数组排序,而不对其进行排序

    我有一个 Node js 应用程序 我必须经常执行以下操作 检查特定数组是否已包含特定元素 如果元素确实存在 则更新它 如果元素不存在 则将其推入数组 然后使用下划线 sortBy对其进行排序 为了检查该元素是否已存在于数组中 我使用这个二
  • 资源解释为样式表但使用 mime 类型文本普通问题进行传输?

    我正在 Apache 2 2 中工作 我的本地主机打开了我的网页 但没有应用 CSS 也没有加载背景图像 我不知道为什么 使用 Chrome 开发者工具时 我收到以下警告 resource interpreted as stylesheet
  • Delphi 7 到 Delphi XE2 .res 文件问题

    当我在 Delphi XE2 中打开 Delphi 7 项目并打开项目选项时 出现错误 Unable to set Icon Cannot open file AppName Icon ico The system cannot find
  • 在深度嵌套的目录树中定义子项目

    如何在嵌套目录树中定义子项目 其中子项目文件夹不是根项目的直接子项目 root lala A lulu B 现在我想将 A 和 B 添加为子项目 如果我做 settings gradle include lala A lulu B 然后 l
  • AFNetworking SSL 固定过期证书

    如果 iOS 应用程序使用 ssl pinning 如何更新过期的 ssl 证书 似乎只有应用程序更新才能更新证书 但不更新应用程序的用户将不会收到此更新 关键是要理解可能的值 https github com AFNetworking A
  • 如何在文档中嵌入作用域 html (css)

    我需要能够将从远程 api 获取的 HTML 片段 嵌套元素和 CSS 嵌入到我的文档中 这样它们的 CSS 就不会影响我的整个文档 我需要获取 随机 gmail 消息 HTML 并将它们嵌入到我的网站中 问题是大多数消息都有 CSS 标签
  • ES6 中的二维数组

    长话短说 我正在寻找一种使用 ES6 创建和填充 2D 数组的方法 以避免for循环 创建的数组应包含全 0 我尝试了很多不同的方法 所以我无法发布所有这些方法 var r c 5 5 var m Array r fill Array c
  • 如何阻止 Visual Studio“总是”检查解决方案文件?

    显然没有任何原因 每次我打开解决方案时 Visual Studio 都会检查 sln 文件 如果我将它与以前的版本进行比较 没有任何变化 但这确实令人沮丧 因为每个人都检查了解决方案 我使用的是 VS 2008 和 TFS 2008 都是
  • IOS UIImageView 显示为黑色背景

    所以我有这个可扩展的函数UIImages 我用它来初始化UIImageView带有图像 我的问题是 当显示图像时 它周围总是有一个黑色矩形 尽管图像是背景完全透明的 png 这是缩放方法以及初始化UIImageView UIImage im
  • AngularJS 错误:缩小后的 $injector:modulerr

    嘿伙计们我收到一个错误Error injector modulerr当我缩小 Angular JS 1 应用程序时 到目前为止 我已经研究过这是我调用依赖项的方式HomeController但是我不确定我可能哪里出错了 我注意到这里有一些预