Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/461.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript $filter不是AngularJS函数_Javascript_Angularjs_Angularjs Scope_Angularjs Filter_Angularjs Http - Fatal编程技术网

Javascript $filter不是AngularJS函数

Javascript $filter不是AngularJS函数,javascript,angularjs,angularjs-scope,angularjs-filter,angularjs-http,Javascript,Angularjs,Angularjs Scope,Angularjs Filter,Angularjs Http,上面是我试图在控制器中使用$http.get和$filter的代码示例 唯一的问题是,当我这样使用它时,控制台日志会抛出一个错误,表明$filter不是一个函数 app.controller('myController', ['$scope', '$http', '$filter', function($scope, $http, $filter) { 当我交换它们时,它会抛出一个错误,即当您使用 app.controller('myController', ['$scope', '$http

上面是我试图在
控制器中使用
$http.get
$filter
的代码示例

唯一的问题是,当我这样使用它时,控制台日志会抛出一个错误,表明
$filter不是一个函数

app.controller('myController', ['$scope', '$http', '$filter', function($scope, $http, $filter) {
当我交换它们时,它会抛出一个错误,即当您使用

app.controller('myController', ['$scope', '$http', '$filter', function($scope, $filter, $http) {
变量
$filter
实际上是
$http
的实例,
$http
$filter
的实例。实际上,在
函数(…)
参数中写入什么并不重要

这里重要的是,你使用的注射剂的顺序,例如

app.controller('myController', ['$scope', '$http', '$filter', function($scope, $filter, $http) {
将映射到以下实例:

  • a->范围
  • b->$http
  • c->$过滤器
来自angular docs:

由于Angular根据控制器构造函数的参数名称推断控制器的依赖关系,因此如果要缩小PhoneListCtrl控制器的JavaScript代码,其所有函数参数也将缩小,依赖关系注入器将无法正确识别服务


因此,通过对控制器使用数组表示法,您可以确保代码在缩小后仍能工作。

在http和angular版本之后添加过滤器也可以保护您的工作方式 将使用过滤器

app.controller('myController', ['$scope', '$http', '$filter', function(a, b, c) {

在我的例子中,通过确保预期的列表对象不为null,预期的数据列表对象为null。我能够避免这个错误

您必须在依赖项列表中声明
$filter
,即
['$scope','$http','$filter',函数($scope,$http,$filter){…
@NikosParaskevopoulos抱歉,我忘了将其添加到示例中,它在依赖项列表中显示了此错误。好的;这里有一些非常可疑的地方。此代码应该可以工作。您能用fiddle/plunk重现此问题吗?您最终是如何解决此问题的?我遇到了相同的问题,下面标记的答案无效ing.我的订单正确无误,伙计..你救了我..谢谢虽然不是确切的场景,与http冲突,但我仍然发现更改订单解决了我的问题
     plateFormController.$inject = ['$scope', '$http',
    '$filter','$timeout', '$q', '$mdSidenav', '$log'];



function plateFormController($scope, $http,$filter, $timeout, $q) {
          jsonByName=$filter('filter')($scope.json, { name: 'a' });
        }