3

入力値を解析するためのアルゴリズムがわずかに異なる 3 つのディレクティブがあります。

angular.module('numeric', []).directive('doublesrange', function() {...} );   
angular.module('numeric', []).directive('integersrange', function() {...} );  
angular.module('numeric', []).directive('doublesnorange', function() {...} );  

基本的に、テキスト ボックスから値を解析します。

<td><input ng-model="odSphere" class="doublesnorange" minvalue="-25" maxvalue="25"></td>  

問題は、'doublesnorange' だけが応答していることです。開発中に 3 つすべてが機能するのを見てきましたが、3 つ目を追加すると、他の 2 つが機能しなくなりました。変更を元に戻しても、彼らは応答しませんでした。

ディレクティブの内容は機能しています。「doublesnorange」の下に「doublesrange」コードを配置すると、実行されます。最初の 2 つが応答しない理由を知っている人はいますか?

4

1 に答える 1

8

問題は、angular.module('numeric', [])数値モジュールを呼び出すたびに再宣言されることです。一度だけ宣言し、後で参照する必要があります。

モジュールを参照するには、2 番目の引数angular.module('numeric')を使用しないでください。したがって、正しいコードは次のとおりです。

angular.module('numeric', []).directive('doublesrange', function() {...} );   
angular.module('numeric').directive('integersrange', function() {...} );  
angular.module('numeric').directive('doublesnorange', function() {...} );  

さらに一歩進んで、チェーンを使用して単一のモジュールに対して複数のディレクティブを宣言できます。

angular.module('numeric', [])
    .directive('doublesrange', function() {...} )
    .directive('integersrange', function() {...} )
    .directive('doublesnorange', function() {...} );  
于 2013-10-04T03:30:31.113 に答える