AngularJs学习笔记(5)--模块(module)

来源:互联网 发布:java并发编程 编辑:程序博客网 时间:2024/05/16 14:14


http://xlows.blog.51cto.com/5380484/1425462


本文主要介绍一下angular中的模块


(1)什么是模块(module)


大部分应用都有一个主方法(main)用来实例化、组织、启动应用。

angularJS应用没有主方法,而是使用模块来声明应用应该如何启动。

模块允许通过声明的方式来描述应用中的依赖关系,以及如何进行组装和启动。


(2)Angular模块


模块是组织业务的一个框框,在一个模块当中定义多个服务。当引入了一个模块的时候,就可以使用这个模块提供的一种或多种服务了。

AngularJS本身的一个默认模块叫做ng,它提供了$http,$scope等服务

服务只是模块提供的多种机制中的一种,其它的还有指令(directive),过滤器(filter),及其它配置信息。

也可以在已有的模块中新定义一个服务,也可以先新定义一个模块,然后在新模块中定义新服务。

服务是需要显式的声明依赖(引入)关系的,让ng自动的做注入。


(3)Module优点

启动过程是声明式的,更容易懂

在单元测试是不需要加载全部模块的,因此这种方式有助于单元测试。

可以在特定情况的测试中增加额外的模块,这些模块能更改配置,能帮助进行端对端测试。

第三方代码可以作为可复用的module打包到angular中。

模块可以以任何先后或者并行的顺序加载(因为模块的执行本身是延迟的)。


(4)定义模块

angular.module(name,[requires],configFn);

configFn会在模块初始化时执行,可以在这里配置模块的服务。


例如

1
var myApp = angular.module('myApp',[]);

这里就定义好了一个模块。


同时可以定义属于这个模块的控制器:

1
2
3
myApp.controller('firstController',function($scope){
    $scope.name = '张三';
});

而在页面上需要设置ng-app来声明这个模块是管理哪一块区域的。

1
2
3
4
5
6
7
    <div ng-app="myApp">
 
        <div ng-controller="firstController">
            {{name}}
        </div>
 
    </div>

此时myApp模块就管理这个div。

至此模块的基本创建就完成了。


0 0