前端之家收集整理的这篇文章主要介绍了
AngularJs学习笔记——摘自菜鸟教程,
前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
Angular Js是一个Javascript框架,它是一个以Javascript编写的库。 AngularJS 模块(Module) 定义了 AngularJS 应用。 AngularJS 控制器(Controller) 用于控制 AngularJS 应用。 ng-app指令定义了应用,ng-controller 定义了控制器。 AngularJS 扩展了 HTML AngularJS 通过 ng-directives 扩展了 HTML。 ng-app 指令定义一个 AngularJS 应用程序。 ng-model 指令把元素值(比如输入域的值)绑定到应用程序。 ng-bind 指令把应用程序数据绑定到 HTML 视图。 AngularJS 使用 表达式 把数据绑定到 HTML 什么是 AngularJS? AngularJS 使得开发现代的单一页面应用程序(SPAs:Single Page Applications)变得更加容易。 AngularJS 把应用程序数据绑定到 HTML 元素。 AngularJS 可以克隆和重复 HTML 元素。 AngularJS 可以隐藏和显示 HTML 元素。 AngularJS 可以在 HTML 元素"背后"添加代码。 AngularJS 支持输入验证。 AngularJS 指令是以 ng 作为前缀的 HTML 属性。 ng-init 指令初始化 AngularJS 应用程序变量。 HTML5 允许扩展的(自制的)属性,以 data- 开头。 AngularJS 属性以 ng- 开头,但是您可以使用 data-ng- 来让网页对 HTML5 有效。 AngularJS 表达式写在双大括号内:{{ expression }}。 AngularJS 表达式把数据绑定到 HTML,这与 ng-bind 指令有异曲同工之妙。 AngularJS 将在表达式书写的位置"输出"数据。 AngularJS 表达式 很像 JavaScript 表达式:它们可以包含文字、运算符和变量。 实例 {{ 5 + 5 }} 或 {{ firstName + " " + lastName }} AngularJS 表达式 与 JavaScript 表达式 类似于 JavaScript 表达式,AngularJS 表达式可以包含字母,操作符,变量。 与 JavaScript 表达式不同,AngularJS 表达式可以写在 HTML 中。 与 JavaScript 表达式不同,AngularJS 表达式不支持条件判断,循环及异常。 与 JavaScript 表达式不同,AngularJS 表达式支持过滤器。 AngularJS 指令 AngularJS 通过被称为 指令 的新属性来扩展 HTML。 AngularJS 通过内置的指令来为应用添加功能。 AngularJS 允许你自定义指令。 AngularJS 指令是扩展的 HTML 属性,带有前缀 ng-。 ng-app 指令初始化一个 AngularJS 应用程序。ng-app 指令告诉 AngularJS,<div> 元素是 AngularJS 应用程序 的"所有者"。 ng-init 指令初始化应用程序数据。 ng-model 指令把元素值(比如输入域的值)绑定到应用程序。 ng-app 指令 ng-app 指令定义了 AngularJS 应用程序的 根元素。 ng-app 指令在网页加载完毕时会自动引导(自动初始化)应用程序。 稍后您将学习到 ng-app 如何通过一个值(比如 ng-app="myModule")连接到代码模块。 ng-init 指令 ng-init 指令为 AngularJS 应用程序定义了 初始值。 通常情况下,不使用 ng-init。您将使用一个控制器或模块来代替它。 ng-model 指令 ng-model 指令 绑定 HTML 元素 到应用程序数据。 ng-model 指令用于绑定应用程序数据到 HTML 控制器(input,select,textarea)的值。 ng-model 指令也可以: 为应用程序数据提供类型验证(number、email、required)。 为应用程序数据提供状态(invalid、dirty、touched、error)。 为 HTML 元素提供 CSS 类。 绑定 HTML 元素到 HTML 表单。 ng-repeat 指令 ng-repeat 指令对于集合中(数组中)的每个项会 克隆一次 HTML 元素。 创建自定义的指令 除了 AngularJS 内置的指令外,我们还可以创建自定义指令。 你可以使用 .directive 函数来添加自定义的指令。 要调用自定义指令,HTML 元素上需要添加自定义指令名。 使用驼峰法来命名一个指令, runoobDirective,但在使用它时需要以 - 分割,runoob-directive: 限制使用 你可以限制你的指令只能通过特定的方式来调用。 restrict 值可以是以下几种: E 作为元素名使用 A 作为属性使用 C 作为类名使用 M 作为注释使用 restrict 默认值为 E 和A,即可以通过元素名和属性名来调用指令。 AngularJS 控制器 AngularJS 应用程序被控制器控制。 ng-controller 指令定义了应用程序控制器。 控制器是常规的 JavaScript 对象,由标准的 JavaScript 对象的构造函数 创建。 AngularJS 过滤器 AngularJS 过滤器可用于转换数据: 过滤器 描述 currency 格式化数字为货币格式。 filter 从数组项中选择一个子集。 lowercase 格式化字符串为小写。 orderBy 根据某个表达式排列数组。 uppercase 格式化字符串为大写。 过滤器可以通过一个管道字符(|)和一个过滤器添加到表达式中。 AngularJS 服务(Service) AngularJS 中你可以创建自己的服务,或使用内建服务。 什么是服务? 在 AngularJS 中,服务是一个函数或对象,可在你的 AngularJS 应用中使用。 AngularJS 内建了30 多个服务。 有个 $location 服务,它可以返回当前页面的 URL 地址。 $http 是 AngularJS 中的一个核心服务,用于读取远程服务器的数据。 ng-repeat 指令是通过数组来循环 HTML 代码来创建下拉列表,但 ng-options 指令更适合创建下拉列表,它有以下优势: 使用 ng-options 的选项的一个对象, ng-repeat 是一个字符串。 ng-show 指令隐藏或显示一个 HTML 元素。 ng-disabled 指令绑定应用程序数据 "mySwitch" 到 HTML 的 disabled 属性。 ng-model 指令绑定 "mySwitch" 到 HTML input checkBox 元素的内容(value)。 如果 mySwitch 为true,按钮将不可用: ng-hide 指令用于隐藏或显示 HTML 元素。 ng-click 指令定义了 AngularJS 点击事件。 隐藏 HTML 元素 ng-hide 指令用于设置应用部分是否可见。 ng-hide="true" 设置 HTML 元素不可见。 ng-hide="false" 设置 HTML 元素可见。 ng-show 指令可用于设置应用中的一部分是否可见 。 ng-show="false" 可以设置 HTML 元素 不可见。 ng-show="true" 可以以设置 HTML 元素可见。 AngularJS 模块 模块定义了一个应用程序。 模块是应用程序中不同部分的容器。 模块是应用控制器的容器。 控制器通常属于一个模块。 JavaScript 中应避免使用全局函数。因为他们很容易被其他脚本文件覆盖。 AngularJS 模块让所有函数的作用域在该模块下,避免了该问题。 HTML 控件 以下 HTML input 元素被称为 HTML 控件: input 元素 select 元素 button 元素 textarea 元素 AngularJS 的首选样式表是 Twitter Bootstrap, Twitter Bootstrap 是目前最受欢迎的前端框架。 AngularJS 动画 AngularJS 提供了动画效果,可以配合 CSS 使用。 AngularJS 使用动画需要引入 angular-animate.min.js 库。 ngAnimate 做了什么? ngAnimate 模型可以添加或移除 class 。 ngAnimate 模型并不能使 HTML 元素产生动画,但是 ngAnimate 会监测事件,类似隐藏显示 HTML 元素 ,如果事件发生 ngAnimate 就会使用预定义的 class 来设置 HTML 元素的动画。 AngularJS 添加/移除 class 的指令: ng-show ng-hide ng-class ng-view ng-include ng-repeat ng-if ng-switch ng-show 和 ng-hide 指令用于添加或移除 ng-hide class 的值。 其他指令会在进入 DOM 会添加 ng-enter 类,移除 DOM 会添加 ng-leave 属性。 当 HTML 元素位置改变时,ng-repeat 指令同样可以添加 ng-move 类 。 此外, 在动画完成后,HTML 元素的类集合将被移除。例如: ng-hide 指令会添加一下类: ng-animate ng-hide-animate ng-hide-add (如果元素将被隐藏) ng-hide-remove (如果元素将显示) ng-hide-add-active (如果元素将隐藏) ng-hide-remove-active (如果元素将显示) value Value 是一个简单的 javascript 对象,用于向控制器传递值(配置阶段): factory factory 是一个函数用于返回值。在 service 和 controller 需要时创建。 通常我们使用 factory 函数来计算或返回值。 provider AngularJS 中通过 provider 创建一个 service、factory等(配置阶段)。 Provider 中提供了一个 factory 方法 get(),它用于返回 value/service/factory。 constant constant(常量)用来在配置阶段传递数值,注意这个常量在配置阶段是不可用的。 mainApp.constant("configParam","constant value"); AngularJS 路由 AngularJS 路由允许我们通过不同的 URL 访问不同的内容。 通过 AngularJS 可以实现多视图的单页Web应用(single page web application,SPA)。 通常我们的URL形式为 http://runoob.com/first/page,但在单页Web应用中 AngularJS 通过 # + 标记 实现。 AngularJS 模块的 config 函数用于配置路由规则。通过使用 configAPI,我们请求把$routeProvider注入到我们的配置函数并且使用$routeProvider.whenAPI来定义我们的路由规则。 $routeProvider 为我们提供了 when(path,object) & otherwise(object) 函数按顺序定义所有路由,函数包含两个参数: 第一个参数是 URL 或者 URL 正则规则。 第二个参数是路由配置对象。 路由设置对象 AngularJS 路由也可以通过不同的模板来实现。 $routeProvider.when 函数的第一个参数是 URL 或者 URL 正则规则,第二个参数为路由配置对象。 template: 如果我们只需要在 ng-view 中插入简单的 HTML 内容,则使用该参数: .when('/computers',{template:'这是电脑分类页面'}) templateUrl: 如果我们只需要在 ng-view 中插入 HTML 模板文件,则使用该参数: $routeProvider.when('/computers',{ templateUrl: 'views/computers.html',}); 以上代码会从服务端获取 views/computers.html 文件内容插入到 ng-view 中。 controller: function、string或数组类型,在当前模板上执行的controller函数,生成新的scope。 controllerAs: string类型,为controller指定别名。 redirectTo: 重定向的地址。 resolve: 指定当前controller所依赖的其他模块。 原文链接:https://www.f2er.com/angularjs/148513.html