我有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'正在响应。我在开发过程中看到了所有三个工作,但是当我添加第三个工作时,另外两个工作停止了。当我解除这些变化时,他们也没有回应。
指令内容正常,如果我将'doublesnorange'置于'doublesnorange'之下,它将会执行。有人知道为什么前两个会没有回应吗?
答案 0 :(得分:8)
问题在于,每次调用 angular.module('numeric',[])时,都会重新声明数字模块。您只需要声明一次,稍后再参考。
要引用模块,不应使用第二个参数: 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() {...} );