未捕获的类型错误: 无法读取未定义的属性“筛选器”

Uncaught TypeError: Cannot read property 'filter' of undefined

本文关键字:属性 未定义 筛选 筛选器 读取 类型 错误      更新时间:2023-09-26

我的自定义过滤器给了我一个错误。

捕获的类型错误:无法读取未定义的属性"筛选器"

法典:

angular.module('PatientApp', []).filter('ageFilter', function() {
     // birthday is a date
     function calculateAge(birthday) { 
         var dateOut = new Date(birthday);
         dateOut.setDate(dateOut.getDate() + 1);
         var ageDifMs = Date.now() - dateOut .getTime();
         // miliseconds from epoch
         var ageDate = new Date(ageDifMs); 
         return Math.abs(ageDate.getUTCFullYear() - 1970);
     }
     return function(birthdate) { 
           return calculateAge(birthdate);
     }; 
});

这对我来说似乎很好用。如果没有更多细节,很难重现错误。但是您的过滤器代码似乎是正确的。

angular.module('PatientApp', []).filter('ageFilter', function() {
     // birthday is a date
     function calculateAge(birthday) { 
         var dateOut = new Date(birthday);
         dateOut.setDate(dateOut.getDate() + 1);
         var ageDifMs = Date.now() - dateOut .getTime();
         // miliseconds from epoch
         var ageDate = new Date(ageDifMs); 
         return Math.abs(ageDate.getUTCFullYear() - 1970);
     }
     return function(birthdate) { 
           return calculateAge(birthdate);
     }; 
})
.controller('mainCtrl', function($scope, $filter){
  var ageFilter = $filter('ageFilter');
  $scope.age = ageFilter('12/25/1995');
});

http://plnkr.co/edit/uegoSEWJgqnMCI1ZzPCk?p=preview