我在两个文件中有两个几乎相同的指令。
文件一:
//firstTestDirective.js
angular.module('utility', [])
.directive('firstTest', function() {
return {
restrict: 'AE',
template: '<div>first test</div>'
};
});
文件二:
//secondTestDirective.js
angular.module('utility', [])
.directive('secondTest', function() {
return {
restrict: 'AE',
template: '<div>second test</div>'
};
});
这两个文件都包含在index.html
中,以及一对调用它们的标记:
<body>
...
<div first-test></div>
<div second-test></div>
...
</body>
<script src=".../firstTestDirective.js"></script>
<script src=".../secondTestDirective.js"></script>
这应该很简单,但是这里出现了奇怪之处:在之后加载哪个脚本的指令另一个是唯一出现的脚本。
如上所述,我得到第二次测试,&#34;但不是&#34;第一次测试&#34;在我看来。如果我反转加载顺序......
<script src=".../secondTestDirective.js"></script>
<script src=".../firstTestDirective.js"></script>
...然后我会得到&#34;首先测试&#34;但不是&#34;第二次测试&#34;在我看来。
这个错误,或者它可能是什么,让我有点疯狂。
其他人遇到过类似问题吗?
P.S。在上面两个脚本之后加载了许多其他脚本,它们似乎都可以正常工作。 Chrome调试中没有错误,并且正在加载所有脚本。
答案 0 :(得分:1)
添加其他指令时,不应再次重新创建模块,请使用1st {s}文件utility
定义的模块secondTestDirective.js
。基本上当你在第二个文件中有angular.module('utility', [])
时会发生什么,它会用utility
模块清除所有已注册的组件。
angular.module('utility') //used already created module
.directive('firstTest', function() {