无法注册自定义angularjs过滤器

时间:2013-04-20 09:01:12

标签: angularjs

我正在尝试用角度来编写自己的过滤器。但是在尝试注册过滤器时我得到了错误,

  

错误:没有模块:customFilterModule

[打破此错误]

抛出错误('无模块:'+名称);

angular.js(第1090行)

  

错误:没有模块:myApp

[打破此错误]

抛出错误('无模块:'+名称);

使用Javascript:

angular.module('customFilterModule')
.filter('customFilter', function() {
    return function(listing, param) {
        var out = [];
        // perform my filtering logic to return a smaller array
        return out;
    };
});

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

function AppController($scope) {
    // my controller code
}

HTML:

    <div class="container" id="mainBody" ng-app="myApp">

        <div id="listingsListBody" class="row" ng-controller="MyController">
        ...
           <div class="sub-container">
              <div class="elem-box" ng-repeat="elem in elems | customFilter:jObj>
              ...
             </div>
         </div>
    </div>

我传递给'customFilter'的参数jObj是由Controller填充的JSON对象的一部分。

我似乎无法弄清楚我做错了什么。

谢谢!

1 个答案:

答案 0 :(得分:3)

在plunker中使用实时代码可以让人们立即回答您的问题,因此附加实时代码示例(使用plunker,jsfiddle或类似代码)总是一个好主意。

根据你的代码示例,我可以发现2个可疑的事情:

1)在此代码中:

angular.module('customFilterModule')
.filter('customFilter', function() {
    return function(listing, param) {
       . . .
    };
});

在您尝试创建新的customFilterModule时,您似乎正在尝试检索(!)现有的angular.module('customFilterModule', [])。你应该写listingFilter代替(注意括号作为第二个参数)

2)从您的代码中不清楚var myApp = angular.module('myApp', ['customFilterModule']); 模块的定义位置。我认为这可能是你的问题所以你应该写一下:

{{1}}