【问题标题】:Getting an Unknown Provider Error for using angular-filter groupBy in my Ionic App在我的 Ionic 应用程序中使用 angular-filter groupBy 时出现未知提供程序错误
【发布时间】:2017-01-20 15:40:06
【问题描述】:

这是我的html页面的代码:

<div ng-repeat="(key, value)  in list.arrayofStuff | orderBy: 'order' |  groupBy: 'code' ">

在 Index.html 中我已经导入了 angular-filter:

<script src="lib/angular-filter/dist/angular-filter.js"></script>

但由于某种原因,我收到了这个错误。

ionic.bundle.js:26794 错误:[$injector:unpr] 未知提供者: groupByFilterProvider

我是否也必须将角度过滤器注入到我的控制器中? 我正在使用 Ionic 1。不胜感激。谢谢。

【问题讨论】:

    标签: javascript angularjs ionic-framework angular-filters


    【解决方案1】:

    您必须在您的应用依赖项中包含 angular-filter 模块。

    var myApp = angular.module('myApp', ['angular.filter']);
    

    来源Here

    【讨论】:

    • 我尝试时遇到此错误:ionic.bundle.js:17917 未捕获错误:[$injector:modulerr] 无法实例化模块 hospitalCare 由于:错误:[$injector:modulerr] 失败实例化模块角度过滤器由于:错误:[$injector:nomod] 模块“角度过滤器”不可用!您要么拼错了模块名称,要么忘记加载它。如果注册模块,请确保将依赖项指定为第二个参数。 errors.angularjs.org/1.5.3/$injector/nomod?p0=%20angular-filter
    【解决方案2】:

    在 AngularJS 中,您不会通过在其中包含脚本标签来导入过滤器。查看this blog postthe AngularJS docs for setting up a custom filter

    在创建过滤器时,您首先会获得对应用模块的引用,然后您可以使用 .filter 方法关闭它。在此处指定您的模块名称是使用 AngularJS“注册”您的过滤器的内容。

    angular.module('MyAppModule')
    .filter('filterName', function() {
      return function(input, uppercase) {
        return input;
      };
    })
    

    然后在您的控制器中,您可以像这样使用过滤器:

    .controller('MyController', ['$scope', 'filterName', function($scope, filterName) {
      $scope.greeting = 'hello';
      $scope.filteredGreeting = filterName($scope.greeting);
    
    }]);
    

    或在 html 中:

    {{ expression | filter }}
    

    听起来您可能正在使用外部模块。如果您团队中的其他开发人员(或不在您的团队中)给了您一个模块并且没有使用 MyAppModule(或任何您的模块名称),那么您将需要导入该模块。您可以查看AngularJS docs on Modules 了解更多信息,但基本上您在首次创建项目模块时在数组中声明另一个开发模块:

    var app = angular.module("MyAppModule", ["otherDevsModule"]);
    

    【讨论】:

    • 感谢您的回答,我正在尝试使用 angular-filter groupBy 过滤器,而不是自定义过滤器。 github.com/a8m/angular-filter#groupby 。我在 angular.module 中包含了模块名称“angular-filter”,但这会引发错误。
    • 好的,只需运行 npm install angular-filter 并将上面的 'otherDevsModule' 替换为 'angular.filter'。
    • 嗨,吉姆,我已经这样做了,所以我的 /lib 中有角度过滤器,但这就是我得到的错误:ionic.bundle.js:17917 未捕获的错误:[$injector: modulerr] 无法实例化模块应用程序,原因是:错误:[$injector:modulerr] 无法实例化模块 angular.filter,原因是:
    • 我不明白您所说的“我的 /lib 中有它”是什么意思。这是一个可以发布链接的公共项目?
    • 对不起,我愚蠢的愚蠢错误,在角度“ angular.filter”之前留了一个空格。谢谢你的帮助
    猜你喜欢
    • 2016-11-08
    • 2015-09-14
    • 2019-09-22
    • 1970-01-01
    • 2012-11-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多