在角度中使用自定义过滤器不适用于日期对象

时间:2016-09-18 16:21:16

标签: javascript angularjs

我想使用角度过滤器以特殊格式显示日期,但是,当我使用此基本代码时,我收到此错误:
angular.js:12221错误:[$ injector:unpr]未知提供商:myFilterFilterProvider ...

var app = angular.module('app', [])

.controller('appController', function ($scope) {
  var d = new Date();
  $scope.days = [
    {
      name: 'A string date',
      value: d
    }
  ];
})

.filter('dateFilter', function() {
   return function(value) {
      return value;
    }
})

然后,我把这段代码放在html中:

<!DOCTYPE html>
<html ng-app="app">
<head>
  <meta charset="UTF-8">
  <title>Angular filter</title>
  <script src="angular.js"></script>
  <script src="app.js"></script>
</head>
<body ng-controller="appController">

  <ul>
    <li ng-repeat="day in days">
      <span>{{day.name}}</span>
      <p>{{day.value | myFilter }}</p>
    </li>
  </ul>

</body>
</html>

我收到了这个错误:

angular.js:12221 Error: [$injector:unpr] Unknown provider: myFilterFilterProvider <- myFilterFilter
http://errors.angularjs.org/1.4.0/$injector/unpr?p0=myFilterFilterProvider%20%3C-%20myFilterFilter
    at angular.js:68
    at angular.js:4238
    at Object.getService [as get] (angular.js:4385)
    at angular.js:4243
    at Object.getService [as get] (angular.js:4385)
    at angular.js:17951
    at isStateless (angular.js:12845)
    at findConstantAndWatchExpressions (angular.js:12902)
    at angular.js:12856
    at forEach (angular.js:336)

1 个答案:

答案 0 :(得分:0)

在HTML中使用dateFilter而不是myFilter

<p>{{day.value | dateFilter }}</p>

错误是关于myFilter的注入器 你没有在任何地方宣布myFilter。所以你得到关于过滤器的错误