1

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

错误:没有模块:customFilterModule

[打破这个错误]

throw Error('没有模块:' + name);

angular.js(第 1090 行)

错误:没有模块:myApp

[打破这个错误]

throw Error('没有模块:' + name);

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 是控制器填充的 JSON 对象的一部分。

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

谢谢!

4

1 回答 1

3

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

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

1)在这段代码中:

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

看起来您正在尝试检索(!)一个现有的customFilterModule,而您可能正在尝试创建一个新的。你应该改写angular.module('customFilterModule', [])(注意括号作为第二个参数)

2)从您的代码中不清楚listingFilter模块的定义位置。我认为这可能是你的问题,所以你应该写:

var myApp = angular.module('myApp', ['customFilterModule']);
于 2013-04-20T09:14:08.583 回答