1

角度で独自のフィルターを作成しようとしています。しかし、フィルターを登録しようとすると、エラーが発生します。

エラー: モジュールがありません: customFilterModule

[このエラーでブレーク]

throw Error('No module: ' + name);

angular.js (1090 行目)

エラー: モジュールがありません: myApp

[このエラーでブレーク]

throw Error('No module: ' + 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番目の引数として括弧に注意してください)

2) コードから、listingFilterモジュールが定義されている場所が明確ではありません。それはあなたの問題かもしれないと思うので、おそらく次のように書くべきです:

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