角度搜索过滤器 - 未知提供者

时间:2014-02-08 09:28:07

标签: javascript angularjs filter

main.js

var myApp = angular.module('myApp', []);

myApp.factory('Avengers', function () {
  var Avengers = {};
  Avengers.cast = [
    {
      name: 'Darius',
      character: 'Darevicius'
    }

  ];
  return Avengers;
});

function AvengersCtrl($scope, Avengers) {
  $scope.avengers = Avengers;
}

的index.html

<div ng-app="myApp">

<head>
    <script src="http://code.angularjs.org/1.2.11/angular.min.js"></script>
    <script src="main.js"></script>
  </head>

<div ng-controller="AvengersCtrl">
     <input type="text" ng-model="searchText">
    <table>
      <tr ng-repeat="actor in avengers.cast | searchText ">
        <td>{{ actor.name }}</td>
        <td>{{ actor.character }}</td>
      </tr>
    </table>
  </div>

</div>

我收到此错误:

http://docs.angularjs.org/error/ $注射器:unpr P0 = searchTextFilterProvider

并且不明白为什么它不起作用。它是原生角度滤波器,它需要什么依赖?当我卸下管道字符和过滤器时,列表被打印并且没有错误。所以看起来它知道所有的依赖关系。

这是从那里开始的例子:

http://www.thinkster.io/pick/ET1iee6rnm/angularjs-ngfilter

2 个答案:

答案 0 :(得分:2)

尝试更改此行

<tr ng-repeat="actor in avengers.cast | filter:searchText ">

根据docs,您需要先指定filter:

答案 1 :(得分:2)

变化:

<tr ng-repeat="actor in avengers.cast | searchText ">

<tr ng-repeat="actor in avengers.cast | filter:searchText ">

Angular正在尝试查找提供程序并将其应用于ng-repeat;由于没有searchTextProvider,因此失败。但是,有一个过滤器提供商。