深究angularJS系列 – 初识

AngularJS是啊?概念?特征?优点?缺点?那都未是从,话不多说,直接弄起O(∩_∩)O~~

深究angularJS系列 –
第三弹

深究angularJS系列 –
第二弹

安装

1.官网http://angularjs.org/下载安装

2.开源库http://www.bootcdn.cn/下载安装

3.bower(一栽保险管理器)下载安装

bower install angular

MVC

MVC即“模型 – 视图 –
控制器”的简称,一种植设计模式,MVC的自逻辑上将代码清晰地划分为老三重合,这样可本着每个片开展独立开发、测试与保障。

  • 型/Model – 服务层(service)负责维护数据

  • 视图/View – 展示层(diretive)负责用数据表现给用户

  • 控制器/Controller – 控制层(control)负责控制Model和View之间的互相

AngularJS启动分析

案例1

 1 <!DOCTYPE html>
 2 <html lang="en" ng-app="demo">
 3     <head>
 4         <meta charset="UTF-8">
 5         <title>demo</title>
 6         <script src="angular.js"></script>
 7     </head>
 8     <body>
 9         {{1+1}}
10         <script>
11             (function(){   //匿名自执行函数,保证angular.js加载完后,立即执行其中的代码
12                 angular.module("demo",[])
13             })()
14         </script>
15     </body>
16 </html>

结果如下:

图片 1

angualr应用创建基本步骤

1.引入angularJS

1 <script src="angular.js"></script>

2.标记ng-app

征:ng-app是次启动指令,用来号
angularJS的管理边界,标记在html元素上面,则表示拥有html内部的元素还当angularjs的田间管理范围

其三栽用法:

ng-app

1 <html lang="en" ng-app>

ng-app=””

1 <html lang="en" ng-app="">

ng-app=“根模块名”

1 <html lang="en" ng-app="demo">

3.创建项目之干净的模块

1 angular.module("demo",[]);

4.angular进来活动启动

angualr应用创建好

流动:{{angular特有表达式}}

案例2

 1 <!DOCTYPE html>
 2 <html lang="en" ng-app="demo">
 3 <head>
 4     <meta charset="UTF-8">
 5     <title>demo</title>
 6     <link rel="stylesheet" href="bootstrap.css">
 7     <script src="angular.js"></script>
 8 </head>
 9 <body>
10     {{1+1}} {{msg}}
11     <div id="box" ng-controller="oneCtrl">
12         {{1+1}} {{msg}}
13     </div>
14     <script>
15         (function(){
16             angular.module("demo",[])
17                .controller("oneCtrl",function($scope){
18                      $scope.msg = "hello angular!"
19                })
20         })()
21     </script>
22 </body>
23 </html>

结果如下:

图片 2

问题:

1.怎么第二个表达式{{msg}},输出结果是hello angular!?

报:下方的代码注册一个曰吧oneCtrl的控制器功能,控制器函数注册在Angular中,可以经过angular.module(…).controller(…)
的函数来调用。

1 angular.module("demo",[])
2    .controller("oneCtrl",function($scope){
3          $scope.msg = "hello angular!"
4    })

2.怎么第一个表达式{{msg}},没有通过angular.module(…).controller(…)的函数来调用?

报经:angularJS具有从严界限管理范围,第一个表达式{{msg}},不以oneCtrl的控制器的田间管理范围

案例3

 1 <!DOCTYPE html>
 2 <html lang="en" ng-app> //没有写成ng-app="demo"
 3 <head>
 4     <meta charset="UTF-8">
 5     <title>demo</title>
 6     <link rel="stylesheet" href="bootstrap.css">
 7     <script src="angular.js"></script>
 8 </head>
 9 <body>
10     {{1+1}} {{msg}}
11     <div id="box" ng-controller="oneCtrl">
12         {{1+1}} {{msg}}
13     </div>
14     <script>
15         (function(){
16             angular.module("demo",[])
17                 .controller("oneCtrl",function($scope){
18                      $scope.msg = "hello angular!"
19                 })
20         })()
21     </script>
22 </body>
23 </html>

结果如下:

图片 3

问题:

1.ng-app,ng-app=””,ng-app=”demo”三者的界别

报经:ng-app有一个默认的模块。如果起差不多个ng-app,默认是加载第一单,而且只有加载第一只。ng-app=“自定义之模块”
是一个以了从定义的模块,该自定义之模块继承了大起的默认的模块,可以调用初始的默认的模块的不二法门第二者是第三者的特例。

2.为什么第二单{{1+1}}
{{msg}}没有加载出来

报:看代码,要加载,只能是angular.module(…).controller(…)的函数来调用,而调用时首先就是找angular.module(“demo”,[])的根本目录“demo”

然而源码中连不曾标记“demo”根目录

案例4

 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <title>demo</title>
 6     <link rel="stylesheet" href="bootstrap.css">
 7     <script src="angular.js"></script>
 8 </head>
 9 <body>
10     {{1+1}} {{msg}}
11     <div id="box" ng-controller="oneCtrl">
12         {{1+1}} {{msg}}
13     </div>
14     <script>
15         (function(){
16             angular.module("demo",[])
17                 .controller("oneCtrl",function($scope){
18                     $scope.msg = "hello angular!"
19                 })
20             angular.bootstrap(document,["demo"]);        
21             angular.bootstrap(document.getElementById("box"),["demo"]); 
22         })()
23     </script>
24 </body>
25 </html>

 结果如下:

图片 4

问题:

1.怎么没有ng-app,也可启动angular?

 答:如果当脚下底页面被管含有ng-app这个令,angular会自动启动,如果未思量当时之页面被展示标识ng-app,我们得代码的点子手动启动,即由此angular.bootstrap(document,[“demo”])手动启动,等价于ng-app=”demo”;

 2.angular.bootstrap(document.getElementById(“box”),[“demo”])的作用?

报经:angular.bootstrap(启动位置,数组),启动位置:表示管理范围,数组:表示将数组中之正是启动模块

 案例5

 1 <!DOCTYPE html>
 2 <html lang="en" ng-app="demo">
 3 <head>
 4     <meta charset="UTF-8">
 5     <title>控制器之间的继承</title>
 6     <meta name="viewport" content="width=device-width,initial-scale=1.0,user-scalable=no">
 7     <link rel="stylesheet" href="../bootstrap.css">
 8 </head>
 9 <body>
10 <div class="well" ng-controller="oneCtrl">
11     {{msg}}
12     <div  class="well" ng-controller="twoCtrl">
13         {{msg}}
14         <div class="well"  ng-controller="threeCtrl">
15             {{msg}}
16         </div>
17     </div>
18 </div>
19 <script src="../angular.js"></script>
20 <script>
21     (function(){
22         angular.module("demo",[])
23             .controller("oneCtrl",function($scope){
24                 $scope.msg = "helle one!"
25             })
26             .controller("twoCtrl",function($scope){
27 //              $scope.msg = "helle two!"
28             })
29             .controller("threeCtrl",function($scope){
30 //              $scope.msg = "helle three!"
31             })
32 
33     })()
34 </script>
35 </body>
36 </html>

结果如下:

图片 5

问题:

1.为何twoCtrl、threeCtrl控制器也出口hell oone!?

报经:当我们的html元素出现嵌套关系的时候,内层继承外层的变量,造成值的重写问题

 

请留言指正补充交流!!

(初识 – 完~~)

相关文章