首先我得到了一个过滤器“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; }]);
答案 0 :(得分:0)
如果我正确理解你,我会以某种方式在HTML页面中包含$scope.gridOptions.columnDefs[].cellFilter
的内容。在上一个columnDef
中,您有以下过滤器:
fromMSDate | date:'mediumDate'
我认为你期望date
将作为第一个参数传递,'mediumDate'
作为第二个参数传递,但angular.js中的过滤器有另一种语法,你需要这样写:
date | fromMSDate:'mediumDate'
将过滤器添加到具有|
字符的表达式中,并将前一个表达式作为第一个参数。可以在:
之后指定其他参数。
因此,在您的示例中,angular.js将'date'识别为过滤器名称,并且无法为其找到DateFilter或DateFilterProvider。