AngularJS 学习笔记 (三)

本文深入探讨AngularJS MVC架构,解析其控制器、视图与模型的工作原理,并通过实例讲解$scope作用域、$rootScope服务及控制器继承等核心概念。此外,还讨论了依赖注入中的代码压缩问题与模块的run方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

angularjs MVC  $scope作用域 AngularJS模块的run方法,以及依赖注入中代码压缩问题


1、AngularJS MVC

model:数据模型层
view:视图层,负责展示
controller:业务逻辑和控制逻辑

优点:代码模块化 代码逻辑比较清晰、可移植性高、后期维护方便,代码复用,代码模块越来越大的时候,切分职责是大势所趋。
缺点:运行效率稍低一些


2、AngularJS $scope作用域
 
$scope多控制器单独作用域

<!doctype html>
<html>
  <head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
  <title>无标题文档</title>
  <script type="text/javascript" src="angular.min.js"></script>
  </head>
  <body>
    <div ng-app="myApp">
        <div ng-controller="firstController">
        {{name}}
        </div>
    <div ng-controller="secondController">
        {{name}}
        </div>
   </div>
   <script type="text/javascript">
      var app=angular.module("myApp",[]);
      app.controller('firstController',function($scope){
        $scope.name='zhangsan';   
     });
      app.controller('secondController',function($scope){
         $scope.name='lisi';
    })
  </script>
  </body>
</html>


2  $rootScope服务
  
<!doctype html>
<html>
  <head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
  <title>无标题文档</title>
  <script type="text/javascript" src="angular.min.js"></script>
  </head>
  <body>
    <div ng-app="myApp">
        <div ng-controller="firstController">
        姓名:{{name}}
        年龄:{{age}}
        </div>
    <div ng-controller="secondController">
        姓名:{{name}}
        年龄:{{age}}
        </div>
   </div>
   <script type="text/javascript">
      var app=angular.module("myApp",[]);
      app.controller('firstController',function($scope,$rootScope){
        $scope.name='zhangsan';   
        $rootScope.age='30';
     });
      app.controller('secondController',function($scope){
         $scope.name='lisi';
    })
  </script>
  </body>
</html>


控制器继承


<!doctype html>
<html>
  <head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
  <title>无标题文档</title>
  <script type="text/javascript" src="angular.min.js"></script>
  </head>
  <body>
    <div ng-app="myApp">
        <div ng-controller="firstController">
        {{name}}
        {{age}}
        {{sex}}
        </div>
    <div ng-controller="secondController">
        {{name}}
        {{age}}
        {{sex}}
        </div>
   </div>
   <script type="text/javascript">
      var app=angular.module("myApp",[]);
      app.controller('firstController',function($scope){
        $scope.name='zhangsan';   
        $scope.age='40';
     });
      app.controller('secondController',function($scope){
         $scope.name='lisi';
         $scope.sex='男';
    })
  </script>
  </body>
</html>

依赖注入中代码压缩的问题
 
 
<!doctype html>
<html>
  <head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
  <title>无标题文档</title>
  <script type="text/javascript" src="angular.min.js"></script>
  </head>
  <body>
    <div ng-app="myApp">
        <div ng-controller="firstController">
        {{name}}
        {{age}}
        {{sex}}
        </div>
    <div ng-controller="secondController">
        {{name}}
        {{age}}
        {{sex}}
        </div>
   </div>
   <script type="text/javascript">
      var app=angular.module("myApp",[]);
      app.controller('firstController',['$scope',function($scope){
        $scope.name='zhangsan';   
        $scope.age='40';
     });
      app.controller('secondController',['$scope',function($scope){
         $scope.name='lisi';
         $scope.sex='男';
    })
  </script>
  </body>
</html>

4 AngularJS模块的run方法
 run方法初始化全局的数据,只对全局作用域起作用 如$rootScope

<script type="text/javascript">
   var m1=angular.module('myApp',[]);
   m1.run(['$rootScope',function($rootScope){
     $rootScope.name='hello'
   }]);
  console.log(m1);
 </script>




评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值