在我的ng-app上调用ng-strict-di时,出现错误“错误:[$ injector:strictdi] percentFilter未使用显式注释,因此无法在严格模式下调用”

<span ng-hide="item.edit" ng-bind="item.tax | percentage"></span> 

我尝试在注入中使用字符串“ percentage”和percentFilter“来解决此问题。

angular.module('myApp').controller("transaction", ['$scope', 'CustomerService', '$state', '$filter', '$modal', 'ngTableParams', 'JobService', 'OrderService', 'toastr', '$timeout','percentageFilter', function ($scope, CustomerService, $state, $filter, $modal, ngTableParams, JobService, OrderService, toastr, $timeout,percentageFilter) {}});

在strictdi模式下注入百分比过滤器或任何其他过滤器的正确方法是什么?

有问题的过滤器:

angular.module('myApp').filter('percentage', function ($window) {
 return function (input, decimalForm) {
    if ($window.isNaN(input))
        return '';
    else if (input == 0)
        return '-';
    else return decimalForm ? (input/100).toFixed(2) : (input*100).toFixed(2) + '%';
 };
});

#1楼 票数:2 已采纳

问题与注入过滤器的方式无关,而是与过滤器本身有关。 你是不是使用了显式依赖注释percentageFilter angular.module('mYapp').filter('percentage', ['$window', function ($window) {

尝试:

angular.module('mYapp').filter('percentage', ['$window', function ($window) {
 return function (input, decimalForm) {
    if ($window.isNaN(input))
        return '';

    if (input == 0)
        return '-';

    return decimalForm ? (input/100).toFixed(2) : (input*100).toFixed(2) + '%';
 };
}]);

  ask by TauterTwiggy translate from so

未解决问题?本站智能推荐:

2回复

Angular Typescript:无法在控制器中注入$ filter

我在指令内使用控制器。 我在控制器构造函数中声明了一个函数(change(searchAttribute:string)),该函数将在内部使用过滤器,但我收到运行时异常“ this。$ filter不是函数”。 我在Google上有很多例子,它们以相同的方式注入$ filter服务,但我
1回复

带有对象JSON过滤器的Angular JS控制器

我有以下几种JSON,我想在JSON中找到Status : 1的对象数,并且尝试了以下方法,但这种方法不起作用。 而且我知道ng-filter只需要应用于Array,但是我在下面的JSON数据中找不到解决方法,有人可以帮我吗 我收到了预期的错误,但在我的情况下如何解决此问题 [f
2回复

angularjs中的控制器与过滤器

它们看起来都像是简单函数,而控制器具有作用域。 它们之间到底有什么区别?
2回复

如何在Angular JS控制器中获取返回过滤器数组数据?

我正在为我的应用程序使用自定义过滤器。 在上面的代码customFilter返回数组数据时,我需要使用该数组数据到我的控制器中。 我不知道如何检索该数组数据。 有人请帮助我。
1回复

将参数传递给控制器​​上定义的过滤器功能

说我有一个(极其简化的)控制器,定义如下: 如何通过模板传递upperBound的值? 我知道如果您滚动专用过滤器,则可以使用filterName:arg1:arg2.... 有什么办法可以通过这种方法实现类似的行为? 或者,是否有任何方法可以让控制器功能访问范围?
1回复

如何使用 angularjs 过滤器和 ng-options 在选择中使某些选项加粗

我正在使用 AngularJS ng-options 来填充某些选择元素。 我想让一些选项加粗并禁用它们。 我正在尝试使用filter和ng-options来实现这一点。 我能够读取 angular js 控制器端的值,但我无法将它们加粗和禁用。 我检查了很多答案,但出于某种原因,没有一个对我有用。
2回复

我们可以在customfilter中访问用户输入值。可以从控制器或直接在customfilter中访问用户输入编号

我是角度js的新手。这里我试图通过从currentTemp变量中减去用户输入(x)来根据温度过滤数据。但不确定我是否可以访问自定义过滤器中的用户输入值。我正在计划使用同样的事情在以后的日期。现在这可能就足够了。请使用custome文件管理器提供反馈(使用输入值并在自定义过滤器中减去它)。任何其他
2回复

我如何知道可以注入控制器的依赖项?

我试图在控制器中使用$routeProvider依赖项: 但是我得到了错误: 我怎么知道我可以注入任何给定控制器的依赖项?