我需要为AngularJS编写一个自定义模块,但是我找不到关于这个主题的任何好的文档。如何为AngularJS编写可以与他人共享的自定义模块?
答案 0 :(得分:80)
在这些情况下你认为文档不能再帮助你了,一个非常好的学习方法是查看其他已经构建的模块,看看其他人如何做到这一点,他们如何设计架构以及如何将它们集成到他们的应用程序中 在看了别人做了什么之后,你应该至少有一个起点。
例如,查看任何angular ui module,您会看到许多自定义模块 一些定义just a single directive,而另一些定义more stuff。
如@nXqd所述,创建模块的基本方法是:
// 1. define the module and the other module dependencies (if any)
angular.module('myModuleName', ['dependency1', 'dependency2'])
// 2. set a constant
.constant('MODULE_VERSION', '0.0.3')
// 3. maybe set some defaults
.value('defaults', {
foo: 'bar'
})
// 4. define a module component
.factory('factoryName', function() {/* stuff here */})
// 5. define another module component
.directive('directiveName', function() {/* stuff here */})
;// and so on
定义模块后,可以很容易地为其添加组件(无需将模块存储在变量中):
// add a new component to your module
angular.module('myModuleName').controller('controllerName', function() {
/* more stuff here */
});
集成部分非常简单:只需将其添加为应用程序模块的依赖项(here's如何使用角度ui)。
angular.module('myApp', ['myModuleName']);
答案 1 :(得分:5)
如果你想寻找一个好例子,你应该研究用angularJS编写的当前模块。学习阅读他们的源代码。顺便说一下,这是我用来在angularJS中编写模块的结构:
var firstModule = angular.module('firstModule', [])
firstModule.directive();
firstModule.controller();
// in your app.js, include the module
这是基本的。
答案 2 :(得分:2)
var newMod = angular.module('newMod', []);
newMod.controller('newCon', ['$scope', function ($scope) {
alert("I am in newCon");
$scope.gr = "Hello";
}]);
这里newMod是一个没有依赖项[]的模块,并且有一个控制器,它有一个告诉你在控制器中的警告和一个值为hello的变量。