AngularJS module.directive 没有一致响应

AngularJS module.directive not responding consistently

本文关键字:响应 module directive AngularJS      更新时间:2023-09-26

我有 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>  

问题是,只有"双倍"在回应。 我在开发过程中看到所有三个都工作,但是当我添加第三个时,其他两个停止工作。 当我撤消更改时,他们也没有回应。

指令内容正在工作,如果我将"双范围"代码放在"双范围"下,它将执行。 有谁知道为什么前两个会没有回应?

问题是,每次调用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() {...} );