设置角度指令

时间:2013-11-27 17:39:05

标签: angularjs

我正在制作一个角度应用程序,需要具有可在多个页面中重复使用的模块。

我已经制定了一个成功创建菜单列表的指令,但目前它必须作为ng-app的一部分进行注册才能进入,如下所示:

angular.module('home', [])
    .directive('Picks', function(){
    return {
        restrict: 'E',
        scope: false,
        templateUrl: 'HTML/templateURL.html'
    };
});

Angular的想法是我的整个网站是在一页/ ng-app包装器上构建的吗?或者他们是否可以让这个Picks指令工作,而不是为每个ng-app定义它?

希望一切都有意义!

1 个答案:

答案 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
-->

在实践中,某些指令使用了一些服务/工厂。所以他们最终进入同一个模块。这意味着按功能而不是按类型对模块进行分组。 这是一个选择问题。