AngularJs基础

1、AngularJs简介

1.1、AngularJS 通过 ng-directives 扩展了 HTML

ng-app 指令定义一个 AngularJS 应用程序
ng-model 指令把元素值(比如输入域的值)绑定到应用程序
ng-bind 指令把应用程序数据绑定到 HTML 视图
ng-init 指令初始化 AngularJS 应用程序变量
ng-repeat 指令会重复一个 HTML 元素
提示信息会在 ng-show 属性返回 true 的情况下显示
驼峰法命令自定义的指令,可以使用 .directive 函数来添加自定义的指令

1.2、AngularJs表达式

AngularJS 表达式写在双大括号内:{{ expression }}。
AngularJS 表达式把数据绑定到 HTML,这与 ng-bind 指令有异曲同工之妙
AngularJS 将在表达式书写的位置"输出"数据
AngularJS 表达式 很像 JavaScript 表达式:它们可以包含文字、运算符和变量
与 JavaScript 表达式不同,AngularJS 表达式可以写在 HTML 中

AngularJs应用

AngularJS 模块(Module) 定义了 AngularJS 应用
AngularJS 控制器(Controller) 用于控制 AngularJS 应用
ng-app指令定义了应用, ng-controller 定义了控制器

2、AngularJS Scope(作用域)

2.1、scope简介

scope 可应用在视图和控制器上
scope 是一个对象,有可用的方法和属性
scope(作用域) 是应用在 HTML (视图) 和 JavaScript (控制器)之间的纽带

2.2、如何使用scope

AngularJS 创建控制器时,你可以将 $scope 对象当作一个参数传递:控制器中的属性对应了视图上的属性
当在控制器中添加 $scope 对象时,视图 (HTML) 可以获取了这些属性
视图中,你不需要添加 $scope 前缀, 只需要添加属性名即可,如: {{carname}}

2.3、根作用域

所有的应用都有一个 $rootScope,它可以作用在 ng-app 指令包含的所有 HTML 元素中
$rootScope 可作用于整个应用中。是各个 controller 中 scope 的桥梁。用 rootscope 定义的值,可以在各个 controller 中使用

3、AngularJs控制器

3.1、控制器简介

AngularJS 应用程序被控制器控制
ng-controller 指令定义了应用程序控制器
控制器是 JavaScript 对象,由标准的 JavaScript 对象的构造函数创建
控制器也可以有方法(变量和函数)
在大型的应用程序中,通常是把控制器存储在外部文件中

4、AngularJs过滤器

过滤器可以使用一个管道字符(|)添加到表达式和指令中
AngularJS 过滤器可用于转换数据:

  • currency 格式化数字为货币格式。
  • filter 从数组项中选择一个子集。
  • lowercase 格式化字符串为小写。
  • orderBy 根据某个表达式排列数组。
  • uppercase 格式化字符串为大写。

向指令添加过滤器:

  • {{ x.name + ', ' + x.country }}
  • 过滤输入,输入过滤器可以通过一个管道字符(|)和一个过滤器添加到指令中,该过滤器后跟一个冒号和一个模型名称:

  • {{ (x.name | uppercase) + ', ' + x.country }}
  • 可以通过.filter函数自定义过滤器

    5、AngularJS 服务(Service)

    5.1、服务简介

    在 AngularJS 中,服务是一个函数或对象,可在你的 AngularJS 应用中使用。
    AngularJS 内建了30 多个服务
    有个 $location 服务,它可以返回当前页面的 URL 地址。
    $location 服务是作为一个参数传递到 controller 中。如果要使用它,需要在 controller 中定义。

    5.2、为什么使用服务

    AngularJS 会一直监控应用,处理事件变化, AngularJS 使用 $location 服务比使用 window.location 对象更好。

    5.3、常用服务

    h t t p 服 务 , http 服务, http,http 是 AngularJS 应用中最常用的服务。 服务向服务器发送请求,应用响应服务器传送过来的数据。
    $timeout 服务,AngularJS $timeout 服务对应了 JS window.setTimeout 函数。
    $interval 服务,AngularJS $interval 服务对应了 JS window.setInterval 函数。

    5.4、创建自定义服务

    可以通过.service函数,创建自定义服务链接到模块中

    6、AngularJS XMLHttpRequest

    $http 是 AngularJS 中的一个核心服务,用于读取远程服务器的数据。包括:$http.get、$http.head、$http.post、$http.put、$http.delete、$http.jsonp、$http.patch

    7、AngularJS Select(选择框)

    在 AngularJS 中我们可以使用 ng-option 指令来创建一个下拉列表,列表项通过对象和数组循环输出
    ng-repeat 指令是通过数组来循环 HTML 代码来创建下拉列表,但 ng-options 指令更适合创建下拉列表,它有以下优势:
    使用 ng-options 的选项是一个对象, ng-repeat 是一个字符串

    8、AngularJS 表格

    ng-repeat 指令可以完美的显示表格。
    排序显示,可以使用 orderBy 过滤器:

    {{ x.Name }}{{ x.Country }}
    

    显示序号 ($index)
    使用 $even 和 $odd

    9、AngularJS HTML DOM

    ng-disabled 指令直接绑定应用程序数据到 HTML 的 disabled 属性。
    ng-show 指令隐藏或显示一个 HTML 元素。
    ng-hide 指令用于隐藏或显示 HTML 元素。

    10、AngularJS 事件

    ng-click 指令定义了 AngularJS 点击事件。

    11、AngularJS 模块

    11.1、模块定义

    模块定义了一个应用程序。
    模块是应用程序中不同部分的容器。
    模块是应用控制器的容器。
    控制器通常属于一个模块。

    11.2、创建模块

    可以通过 AngularJS 的 angular.module 函数来创建模块

    var app = angular.module("myApp", []);
    

    在模块定义中 [] 参数用于定义模块的依赖关系。
    中括号[]表示该模块没有依赖,如果有依赖的话会在中括号写上依赖的模块名字。

    12、AngularJS 表单

    HTML 控件:input 元素、select 元素、button 元素、textarea 元素
    Checkbox(复选框),checkbox 的值为 true 或 false,可以使用 ng-model 指令绑定
    单选框,可以使用 ng-model 来绑定单选按钮到你的应用中
    下拉菜单,使用 ng-model 指令可以将下拉菜单绑定到你的应用中。
    HTML 表单,HTML 表单通常与 HTML 控件同时存在。

    13、AngularJS 输入验证

    AngularJS 表单和控件可以提供验证功能,并对用户输入的非法数据进行警告。
    $dirty 表单有填写记录
    $valid 字段内容合法的
    $invalid 字段内容是非法的
    $pristine 表单没有填写记录

    14、AngularJS API

    angular.lowercase() 转换字符串为小写
    angular.uppercase() 转换字符串为大写
    angular.isString() 判断给定的对象是否为字符串,如果是返回 true。
    angular.isNumber() 判断给定的对象是否为数字,如果是返回 true。

    15、AngularJS 包含

    在 AngularJS 中,你可以在 HTML 中包含 HTML 文件。
    可以使用 ng-include 指令来包含 HTML 内容
    ng-include 指令除了可以包含 HTML 文件外,还可以包含 AngularJS 代码

    16、AngularJS 动画

    angular.module('myApp', ['ngAnimate']);
    
    

    17、AngularJS 依赖注入

    定义,没事你不要来找我,有事我会去找你。
    5个核心组件用来作为依赖注入:

    • Value 是一个简单的 javascript 对象,用于向控制器传递值(配置阶段)
    • factory 是一个函数用于返回值。在 service 和 controller 需要时创建,通常我们使用 factory 函数来计算或返回值。
    • provider 创建一个 service、factory等(配置阶段)
    • constant(常量)用来在配置阶段传递数值,注意这个常量在配置阶段是不可用的。
    • service

    18、AngularJS 路由

    定义,AngularJS 路由允许我们通过不同的 URL 访问不同的内容。
    angular.module(‘routingDemoApp’,[‘ngRoute’]) ngRoute 模块作为主应用模块的依赖模块。

    div 内的 HTML 内容会根据路由的变化而变化。 配置 $routeProvider,AngularJS $routeProvider 用来定义路由规则。 AngularJS 模块的 config 函数用于配置路由规则 $routeProvider 为我们提供了 when(path,object) & otherwise(object) 函数按顺序定义所有路由,函数包含两个参数: 第一个参数是 URL 或者 URL 正则规则。 第二个参数是路由配置对象。

    你可能感兴趣的:(AngularJs)