Angular入门02- Module模块、Controller控制器

AngularJS中,模块是定义应用的最主要方式。模块包含了主要的应用代码。一个应用可以包含多个模块,每一个模块都包含了定义具体功能的代码。

即:angular.module() 用来注册一个应用模块

一、模块定义

AngularJS允许我们使用angular.module()方法来声明模块,这个方法能够接受两个参数,第一个是模块的名称,第二个是依赖列表,也就是可以被注入到模块中的对象列表。

angular.module(‘myApp’, [注入的对象列表]); ——参数必须是两个!!!

 var app=angular.module('app',[]);
 //注意:注册应用必须写两个参数,即使没有依赖
 var app2=angular.module("app");
 console.log(app===app2); //true
 //只写一个参数代表引用模块
run方法

run:初始化模块,运行一个模块
作用:在其回调里,通过$rootScope这个对象上挂属性
“$rootScope”是angular的顶级作用域(angular中作用域即$scope对象或“\$rootScope”对象,在它们内用于挂载页面数据属性或方法)

 var app=angular.module('app',[]);
     app.run(function($rootScope){
         $rootScope.user={
             name:'sophie',
             age:24
         }
     })
  //html中
  <div >
     {{user.name}}--{{user.age}}
  </div>    

实例:使用angular写一个时间实时刷新

    //注册应用
    var app=angular.module('app',[]);
   //初始应用
     app.run(function($rootScope,$interval){
   //使用定时器每秒
    $interval(function(){
       $rootScope.time=new Date().toLocaleString();
            },1000)
        })

二、Controller控制器

语法:

1)、定义: app.controller(“参数一”,“参数二”)
参数一:控制器名称,用于和视图绑定
参数二:控制器初始化的回调函数,可以传入$scope参数来获取当前“控制器”的作用域(局部作用域);
2)、关联控制器,与视图建立联系:
ng-controller指令

2.1 什么是控制器

AngularJS中的控制器就是一个函数,用来向视图的作用域中添加额外的功能。

页面上创建一个新的控制器时,AngularJS会创建一个新的$scope给这个控制器。可以在这个控制器里初始化$scope。由于AngularJS会负责处理控制器的实例化过程,我们只需编写构造函数即可。

2.2 控制器的作用

为应用程序创建一个作用域,具体在于$scope对象从VM端向View传递信息;增强视图。

控制器在AngularJS中的作用是增强视图。具体的体现在于$scope对象上面,$scope对象用来从数据模型向视图传递信息。同时,它也可以用来设置事件监听器,同应用的其他部分进行交互,以及创建与应用相关的特定业务逻辑。

补充:

AngularJS同其他JavaScript框架最主要的一个区别就是,控制器并不适合用来执行DOM操作、格式化或数据操作,以及除存储数据模型之外的状态维护操作。它只是视图和$scope之间的桥梁

2.3 简单使用
<!DOCTYPE html>
<html lang="en" ng-app="app">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
<!--引入Angular框架 -->
    <script src="../vendor/angular.min.js"></script>
</head>
<body >
<!--关联controller: ng-controller指令 -->
    <div ng-controller="myCtrl">
        {{msg}}
    </div>    
    <script>
        //注册应用
        var app=angular.module('app',[]);
        //定义controller         app.controller("myCtrl",function($scope){
            $scope.msg="hello world"
        })
    </script>
</body>
</html>

多个controller

<script>
        //注册应用
        var app=angular.module('app',[]);
        //初始应用        app.controller("myCtrl",function($scope){
            $scope.msg="hello world"
            $scope.handleClick=function(){
                console.log("1被点击")
            }
        })        app.controller("myCtrl2",function($scope){
            $scope.msg="hello u"
            $scope.handleClick=function(){
                console.log("2被点击")
            }

        })
    </script>

html中绑定事件

<div ng-controller="myCtrl" ng-click="handleClick()">
        {{msg}}
 </div>
    <div ng-controller="myCtrl2" ng-click="handleClick()">
        {{msg}}
    </div>
2.4 多个控制器

在angular中每定义一个controller就会创建一个scope作用域,在angular中的作用域其实和JS中的作用域是类似的,可以把$rootScope看成是全局的作用域,而$scope作为局部作用域是可以嵌套的,也有作用域链的存在
例:

/* controller.js */
//注册应用 
var app=angular.module("app",[]);
//定义controller
app.controller('myCtrl1',function($scope){
    $scope.name="张三";
})
app.controller('myCtrl2',function($scope){
    $scope.name="李四";
})

    <!--视图部分-->
    <div ng-controller="myCtrl1">
        {{name}}   
     <!--张三-->   
    </div>
    <div ng-controller="myCtrl2">
        {{name}}
     <!--李四--> 
    </div>
  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Sophie_U

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值