AngularJS 是一个 JS 框架,适用于以数据操作为主的 SPA (Single Page Application)应用。

不再是 “先查找元素在操作元素”,所有操作都以 “Model数据为中心”

AngularJS 的四大特性

  • 采用 MVC 模型

    1. Model:模型,业务数据;在 AngularJS 中,就是存储于特定作用范围内的变量
    2. View:视图,模型数据在页面中的呈现
    3. Controller:控制器,负责创建、修改、删除模型数据,AngularJS 中,使用function来创建控制器
  • 自动化双向数据绑定
  • 依赖注入
  • 模块化设计

AngularJS 中 ng 模块提供的指令

ngApp 用途:

- 初始化一个 AngularJS 应用程序
- 标记了AngularJS脚本的作用域

语法:

<element ng-app><element>
<element ng-app="xxx"><element>
<element data-ng-app="xxx"><element>

注意:一个 HTML 页面只允许使用一次 ngApp 指令,如果有多个 ng-app 指令,则只有第一个会被使用,同时只有 ngApp 范围内的 Angular 表达式才会被计算出对应的值。

ngInit:用于声明 Model 变量,初始化应用程序模型数据

语法:

<element ng-init="变量名=值;变量名1=值1">

注意:Model 变量声明时不能使用 var 关键字 和 new 关键字

  • 使用 ngInit 指令声明模型数据 ----- 将 Model 和 View 混杂在一起,不推荐使用
  • 使用Controller控制器 声明模型数据 ----- 实现了Model 和 View 的分离,且可以使用的数据类型更加广泛,推荐使用
1. 声明一个自定义的模块(module)
angular.module('模块名', []);
2. 在当前 AngularJS 应用中注册自定义模块
ng-app="模块名"
3. 在自定义模块中创建 Controller 函数,其中声明 Model 数据
$scope.模型变量名 = 值;
4. 在 View 中创建 Controller 对象的实例,指定其作用范围
<element ng-controller="控制器名"> 控制器的有效范围 </element>
5. 在控制器的作用范围内输入 Model 变量
使用 {{}} 输出 Model 变量的值

ngController:创建一个控制器对象的实例(即调用 Controller 函数)

语法:

<element ng-controller="控制器名"></element>

使用控制器创建的模型数据可以是如下类型:

1. String、Number、Boolean 基本类型的值
2. 数组类型
3. 使用任意方法创建的对象

ngBind:在当前元素的 innerHTML 上输出指定的表达式的值

语法:

<element ng-bind="表达式"></element>

此指令的作用与 {{}} 一样,只是可以防止闪动问题

ngRepear:为 HTML 增加循环功能,循环输出当前元素

语法:

<element ng-repeat=""></element>

ngIf:为 HTML 增加选择功能,只有在表达式值为true时,当前元素才添加到 DOM 树,否则就从 DOM 树上删除

语法:

<element ng-if=""></element>

$scope 和 $rootScope 的区别

  1. 每个控制器的实例都对应一个作用范围对象,即 $scope
  2. 在控制器中声明的 Model 数据,必须保存在一个作用范围内
  3. 为了在多个控制器共享数据,可以将 Model 数据保存在一个 “全局作用范围内” -- $rootScope -- 整个 AngularApp 中只能有一个 $rootScope 对象,而且这个对象是所有$scope 的父作用域对象
  4. 作用域对象间可以实现继承,只需要将某个控制器实例声明在另一个控制器实例的有效zuo'yong'yu'nei'bu'ji'ke
<body>
<div class="container">
<div ng-controller="c1">
<div ng-controller="c2"></div>
</div>
</div>
<script src="angular.js"></script>
<script>
angular.module('App', ['ng'])
.controller('c1', function($scope, $rootScope){
$scope.ename = '爸爸';
$rootScope.ename = '爷爷';
})
.controller('c2', function($scope){
$scope.ename = '孙子';
console.dir($scope);
})
</script>
</body>

上述代码就形成一个简单的继承关系。

AngularJS 学习之路(1)的更多相关文章

  1. luluzero的angularJs学习之路_angularJs示例代码

    最近开始自学 angularJs这个前端MVC框架,感觉在前端实现MVC很酷有木有.哈哈哈... 先说说我对前端MVC的一个基本的理解吧(刚开始学习接触得还比较浅显,理解可能会有些不到位,还请各位大神 ...

  2. angularJS 学习之路

    AngularJS 通过 ng-directives 扩展了 HTML. ng-app 指令定义一个 AngularJS 应用程序.也就是angularjs作用的入口  作用在什么标签或者整个body ...

  3. AngularJS学习之旅

    开篇 最近由于项目上可能需要用到AngularJS,公司将技术学习.调研的任务安排了下来,因此开始了我的AngularJS学习之路. 在这之前没写过技术博客,主要是由于太懒,另外自愧文笔不好,因此一直 ...

  4. Python学习之路目录(收藏整理)

    目录 Python之路[第一篇]:Python简介和入门 Python之路[第二篇]:Python基础(一) Python之路[第三篇]:Python基础(二) Python之路[第四篇]:模块    ...

  5. jQuery学习之路(1)-选择器

    ▓▓▓▓▓▓ 大致介绍 终于开始了我的jQuery学习之路!感觉不能再拖了,要边学习原生JavaScript边学习jQuery jQuery是什么? jQuery是一个快速.简洁的JavaScript ...

  6. Android开发学习之路-RecyclerView滑动删除和拖动排序

    Android开发学习之路-RecyclerView使用初探 Android开发学习之路-RecyclerView的Item自定义动画及DefaultItemAnimator源码分析 Android开 ...

  7. RPC远程过程调用学习之路(一):用最原始代码还原PRC框架

    RPC: Remote Procedure Call 远程过程调用,即业务的具体实现不是在自己系统中,需要从其他系统中进行调用实现,所以在系统间进行数据交互时经常使用. rpc的实现方式有很多,可以通 ...

  8. webService学习之路(三):springMVC集成CXF后调用已知的wsdl接口

    webService学习之路一:讲解了通过传统方式怎么发布及调用webservice webService学习之路二:讲解了SpringMVC和CXF的集成及快速发布webservice 本篇文章将讲 ...

  9. [精品书单] C#/.NET 学习之路——从入门到放弃

    C#/.NET 学习之路--从入门到放弃 此系列只包含 C#/CLR 学习,不包含应用框架(ASP.NET , WPF , WCF 等)及架构设计学习书籍和资料. C# 入门 <C# 本质论&g ...

随机推荐

  1. MongoDB的学习--聚合

    最近要去的新项目使用mysql,趁着还没忘记,总结记录以下MongoDB的聚合. 聚合是泛指各种可以处理批量记录并返回计算结果的操作.MongoDB提供了丰富的聚合操作,用于对数据集执行计算操作.在  ...

  2. Linux的学习--配置LNMP环境

    最近,回到公司,发现电脑都换成linux系统了...很无力... 配置环境,跑起项目来就花了一天...额...在这里记录一下-- 系统是ubuntu 12.04. 一.安装nginx1:ubuntu因 ...

  3. 用DropDownList实现的省市级三级联动

    这是一个用DropDownList 实现的省市级三级联动,记录一下········ <asp:ScriptManager ID="ScriptManager1" runat= ...

  4. TFS简介

    Team Foundation Server(TFS)是一种为 Microsoft 产品提供 源代码管理.数据收集.报告和项目跟踪,而为协作软件开发的项目.可作为独立的软件,或 Visual Stud ...

  5. 20套高品质的 Mobile & Web 界面 PSD 素材免费下载

    在这里,我们向大家呈现20个新鲜出炉的矢量的免费 PSD 素材.这些素材来自著名的设计社区——Dribbble,这个网站的用户不断发布各种精美的用户界面,图标和网站布局,以帮助激励他人.这些免费素材不 ...

  6. 基于HTML5技术的电力3D监控应用(一)

    最近参与了国网计量中心的四线一库自动化检定系统的项目开发,团队封闭开发了大半年终于快到尾声了,整个项目过程实在非常累,我的mentor杨杨老师是这样描述的:累的不想说话了.我估计是我太渴望新知识,整天 ...

  7. 一图看懂host_only nat bridge拓扑结构

    VMware三种模式 我们在使用VMware时经常能看到三种网络的连接模式:Bridged  Host-Only Nat,它们都有什么作用,网络拓扑是怎样的?怎样才能让他们上网,他们相互间能不能相互访 ...

  8. 理清那么多个OO(面向对象)

    OOA - Object-Oriented Analysis(面向对象分析) OOT - Object-Oriented Testing (面向对象测试) OOP - Object-Oriented ...

  9. OS初识

    参考: 操作系统的故事(1-4):

  10. windbg学习进阶之——windbg环境变量配置

    接触性能调优以来一直想学下windbg分析dump,每次看老师几个命令就能找到很底层的问题原因那简直就是羡慕加崇拜啊~但是这接近一年了,愣是没啥进展呢,主要就是在今天整理的这部分卡住了...这理由找的 ...