循环依赖关系使用自定义过滤器和filterOptions时出错
首先我得到了一个Filter“fromMSDate”,我用它来转换json日期不是正常的日期,如果这个过滤器是放置然后刷新我的输入,绑定到filterOptions.filterText我得到'循环依赖'和'未知的提供者:fromMSDate | dateFilterProvider < - fromMSDate'
//模块
var mainApp = angular.module('mainApp', ['ngGrid']);
//控制器
mainApp.controller('MandateListController', function MandateListController($scope) { $scope.filterOptions = { filterText: '' }; $scope.mandates = data; $scope.gridOptions = { data: "mandates", filterOptions: $scope.filterOptions, sortInfo: { fields: ['ExpectedDate', 'ProjectName'], directions: ['desc', 'asc'], columns: ['ExpectedDate', 'ProjectName'] }, columnDefs: [ { field: 'ProjectName', displayName: 'Project Name', width: '30%', cellClass: 'text-center' }, { field: 'Amount', displayName: 'Size', cellFilter: 'number:2', cellClass: 'text-right' }, { field: 'RatingId', displayName: 'Rating', cellClass: 'text-center' }, { field: 'CurrencyId', displayName: 'Currency', cellClass: 'text-center' }, { field: 'MaturityId', displayName: 'Maturity', cellClass: 'text-center' }, { field: 'EstimatedPl', displayName: 'Estimated P/L', cellFilter: 'number:2', cellClass: 'text-right' }, { field: 'ExpectedDate', displayName: 'Expected Date', cellClass: 'text-center', cellFilter: "fromMSDate | date:'mediumDate'" } ] }; });
//过滤
mainApp.filter("fromMSDate", [function () { var result = function(date, formatstring) { if (formatstring === null || formatstring === undefined) { formatstring = "DD MMM YYYY"; } return moment(date).format(formatstring); }; return result; }]);
如果我正确理解你以某种方式在HTML页面中包含$scope.gridOptions.columnDefs[].cellFilter
。 在过去的columnDef
你有以下过滤器:
fromMSDate | date:'mediumDate'
我认为你期望date
将作为第一个参数传递, 'mediumDate'
作为第二个参数,但angular.js中的过滤器有另一个语法,你需要这样写:
date | fromMSDate:'mediumDate'
使用|
将过滤器添加到表达式中 字符并获得先前的表达式作为第一个参数。 其他参数可以在以下之后指定:
。
因此,在您的示例中,angular.js将“date”识别为过滤器名称,并无法为其找到DateFilter或DateFilterProvider。
链接地址: http://www.djcxy.com/p/77847.html上一篇: Circular dependency Error when using a custom filter and filterOptions