我需要为 AngularJS 编写一个自定义模块,但我找不到关于该主题的任何好的文档。如何为 AngularJS 编写一个可以与他人共享的自定义模块?
问问题
30805 次
3 回答
81
在这些情况下,如果您认为文档无法再帮助您,一个非常好的学习方法是查看其他已经构建的模块,看看其他人是如何做到的,他们如何设计架构以及他们如何将它们集成到他们的应用程序。
看了别人做了什么,你至少应该有一个起点。
例如,查看任何Angular ui 模块,您会看到许多自定义模块。
一些只定义一个指令,而另一些定义更多的东西。
就像@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 */
});
集成部分相当简单:只需将其添加为您的应用程序模块的依赖项(这是angular ui 的操作方式)。
angular.module('myApp', ['myModuleName']);
于 2013-10-01T06:57:16.630 回答
5
如果你想找一个好的例子,你应该看看当前用 angularJS 编写的模块。学习阅读他们的源代码。顺便说一句,这是我用来在 angularJS 中编写模块的结构:
var firstModule = angular.module('firstModule', [])
firstModule.directive();
firstModule.controller();
// in your app.js, include the module
这是基本的。
于 2013-10-01T06:28:41.310 回答
2
var newMod = angular.module('newMod', []);
newMod.controller('newCon', ['$scope', function ($scope) {
alert("I am in newCon");
$scope.gr = "Hello";
}]);
这里的 newMod 是一个没有依赖项 [] 的模块,它有一个控制器,它有一个警告,告诉你在控制器中,还有一个值为 hello 的变量。
于 2014-10-17T03:36:23.957 回答