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”在响应。我在开发过程中看到所有三个工作,但是当我添加第三个时,其他两个停止工作。当我撤消更改时,他们也没有回应。

指令内容有效,如果我将“doublesrange”代码放在“doublesnorange”下,它将执行。有谁知道为什么前两个没有回应?

4

1 回答 1

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() {...} );  
于 2013-10-04T03:30:31.113 回答