在我的ng-app上调用ng-strict-di时,我收到错误“错误:[$ injector:strictdi] percentageFilter没有使用显式注释,无法在严格模式下调用”在线
<span ng-hide="item.edit" ng-bind="item.tax | percentage"></span>
我尝试在注射中使用字符串“percentage”和percentageFilter来解决问题。
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) + '%';
};
});
答案 0 :(得分: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) + '%';
};
}]);