我正在制作一个角度应用程序,需要具有可在多个页面中重复使用的模块。
我已经制定了一个成功创建菜单列表的指令,但目前它必须作为ng-app的一部分进行注册才能进入,如下所示:
angular.module('home', [])
.directive('Picks', function(){
return {
restrict: 'E',
scope: false,
templateUrl: 'HTML/templateURL.html'
};
});
Angular的想法是我的整个网站是在一页/ ng-app包装器上构建的吗?或者他们是否可以让这个Picks指令工作,而不是为每个ng-app定义它?
希望一切都有意义!
答案 0 :(得分:0)
在开发模式中,首选使用单独的js文件作为指令。如果指令不依赖于家庭应用程序,它也可以重新注入其他应用程序。
//file component.js with directive usually alongside their Controllers
var someModule = angular.module('business', []);
someModule.directive('Picks', function(){
return {
restrict: 'E',
scope: false,
templateUrl: 'HTML/templateURL.html'
};
});
/*file homepage.js inject the component module as a dependency*/
angular.module('home',['business']);
/*file main.js another app*/
angular.module('myApp', ['business']);
<!-- index.html -->
<html ng-app="home">
...
<script src="component.js"></script>
<script src="homepage.js"></script>
</html>
<!-- eventually concat and minified for pre production, so it doesn t matter
how you organized it
-->
在实践中,某些指令使用了一些服务/工厂。所以他们最终进入同一个模块。这意味着按功能而不是按类型对模块进行分组。 这是一个选择问题。