1.ng-app
<html lang="en" ng-app>
ng-app
指令标记了AngularJS脚本的作用域,在<html>
中添加ng-app
属性即说明整个<html>
都是AngularJS脚本作用域。开发者也可以在局部使用ng-app
指令,如<div ng-app>
,则AngularJS脚本仅在该<div>
中运行。
2.AngularJS模板的核心功能——绑定
<p>Nothing here {{'yet' + '!'}}</p>
这个绑定由双大括号{{}}
和表达式'yet' + '!'
组成。
这个绑定告诉AngularJS需要运算其中的表达式并将结果插入DOM中,接下来的步骤我们将看到,DOM可以随着表达式运算结果的改变而实时更新。
AngularJS表达式Angular expression是一种类似于JavaScript的代码片段,AngularJS表达式仅在AngularJS的作用域中运行,而不是在整个DOM中运行。
3.视图与模板
<html ng-app> <head> ... <script src="lib/angular/angular.js"></script> <script src="js/controllers.js"></script> </head> <body ng-controller="PhoneListCtrl"> <ul> <li ng-repeat="phone in phones"> {{phone.name}} {{phone.snippet}} </li> </ul> </body> </html>
ng-controller="PhoneListCtrl"
ng-repeat="phone in phones"是一个AngularJS迭代器。这个迭代器告诉AngularJS用第一个<li>标签作为模板为列表中的每一部手机创建一个<li>元素
js/controllers.js--->模型与控制器
'use strict'; /* Controllers */ var phonecatApp = angular.module('phonecatApp', []); phonecatApp.controller('PhoneListCtrl', function($scope) { $scope.phones = [ {'name': 'Nexus S', 'snippet': 'Fast just got faster with Nexus S.'}, {'name': 'Motorola XOOM™ with Wi-Fi', 'snippet': 'The Next, Next Generation tablet.'}, {'name': 'MOTOROLA XOOM™', 'snippet': 'The Next, Next Generation tablet.'} ]; });
控制器函数的作用域($scope)
AngularJS的作用域理论非常重要:一个作用域可以视作模板、模型和控制器协同工作的粘接器。AngularJS使用作用域,同时还有模板中的信息,数据模型和控制器。这些可以帮助模型和视图分离,但是他们两者确实是同步的!任何对于模型的更改都会即时反映在视图上;任何在视图上的更改都会被立刻体现在模型中
3.ng-model/filter
<div class="container-fluid"> <div class="row-fluid"> <div class="span2"> <!--Sidebar content--> Search: <input ng-model="query"> </div> <div class="span10"> <!--Body content--> <ul class="phones"> <li ng-repeat="phone in phones | filter:query"> {{phone.name}} <p>{{phone.snippet}}</p> </li> </ul> </div> </div> </div>数据绑定: 这是AngularJS的一个核心特性。当页面加载的时候,AngularJS会根据输入框的属性值名字,将其与数据模型中相同名字的变量绑定在一起,以确保两者的同步性。
在这段代码中,用户在输入框中输入的数据名字称作query
,会立刻作为列表迭代器(phone in phones | filter:
query`)其过滤器的输入。当数据模型引起迭代器输入变化的时候,迭代器可以高效得更新DOM将数据模型最新的状态反映出来
-
使用
filter
过滤器:filter函数使用query
的值来创建一个只包含匹配query
记录的新数组。ngRepeat
会根据filter
过滤器生成的手机记录数据数组来自动更新视图。整个过程对于开发者来说都是透明的。
3.Directives/Expressions
<!-- html --> <ul> <li ng-click="hide_child = !hide_child"> Item 1 <ul ng-hide="hide_child"> <li>Item child 1</li> </ul> </li> </ul>ng-click和ng-hide都是框架自带的Directives(指令),前者相当于给li标签提供了一个Event Handler,在该HTML元素(li)被点击的时候,会执行hide_child = !hide_child这个Expression(表达式)。我们先看一下ng-hide这个指令,它会根据赋值的表达式结果(布尔值)来控制该HTML元素是否要显示(通过CSS实现)。也就是说,如果hide_child这个变量如果是true,那么ul就会被隐藏,否则结果相反。
这里hide_child其实是$scope上的一个变量,对它的值的变更,也可以用controller控制器包装一个方法来实现,只不过现在的语句比较简单,直接写在了指令的赋值里面。
通过以上简单的代码分析,我们可以看到AngularJS两个比较明显的特点:
1.通过指令和表达式对DOM的操作进行了封转,只需简单的代码便可省去额外的JavaScript代码
2.指令和表达式的应用,只直接嵌套在HTML中的,这和jQuery推从的Unobtrusive JavaScript的代码风格有些背道而驰
相关推荐
### AngularJS 基础 AngularJS是一个由Google开发和维护的开源前端框架,用于构建动态的、富交互的Web应用。它最初由Misko Hevery和Adam Abrons于2009年开发,后来成为了Google的项目。AngularJS通过将应用逻辑绑定...
**AngularJS基础(1)** AngularJS,作为一个强大的前端JavaScript框架,由Google维护,是Web开发中的重要工具,尤其在构建动态单页应用程序(SPA)时。本篇将深入探讨AngularJS的基础概念,帮助初学者快速上手。 ...
**AngularJS基础教程** AngularJS,作为一款由Google维护的前端JavaScript框架,是构建动态Web应用的利器。它提供了一套强大的数据绑定和依赖注入机制,使得开发者可以更专注于业务逻辑,而无需过多关注DOM操作。本...
这是angularjs的基础视频教程,里面包含网盘链接和提取码
本教程将深入探讨AngularJS的基础知识,包括它的核心概念、指令、服务以及数据绑定等,帮助初学者理解并掌握这个框架。 一、AngularJS核心概念 1. **双括号数据绑定**:`{{ }}` 是AngularJS中最直观的特点,它实现...
AngularJS 基础 Web 开发课程 学分 基于的最终项目 特玛丽 AngularJS 简介 AngularJS 关键概念 App的基本配置 使用表单 使用 ngRoute 路由 档案结构 示例应用 访问 REST API 的服务 生产部署准备 安装 在开发环境中...
AngularJs 基础 HTML 非常适合声明静态文档,但是当我们尝试使用它来声明 Web 应用程序中的动态视图时,它会动摇。 AngularJS 允许您为应用程序扩展 HTML 词汇。 由此产生的环境非常具有表现力、可读性和快速开发。
火箭燃料用于学习AngularJS基础的项目帕特里克·斯塔尔普(Patrick Stalcup) ##目标使用AngularJS构建有意义的东西要记住git(至少对于个人项目而言) 发挥创意并为游戏设计一些东西##跑步签出专案确保您已安装...
AngularJS Seed工程是一个基础的AngularJS项目模板,包含了必要的文件和目录结构,用于快速启动一个新的AngularJS项目。`app`目录通常是存放应用源代码的地方,包括控制器、服务、指令等。而`test`目录则用于存放...
**AngularJS基础课程详解** AngularJS,作为一款强大的前端JavaScript框架,由Google维护,主要用于构建动态Web应用。这个“LearningAngularJSBasic”测试仓库旨在帮助初学者深入理解AngularJS的基本概念和技术,...
以下是关于AngularJS基础的一些关键知识点: 1. **双括号数据绑定**:AngularJS的核心特性之一就是双向数据绑定,它使得视图和模型之间保持同步。在HTML元素中使用`{{ }}`双括号,可以直接显示或更新模型的数据。 ...
根据提供的文件信息,我们可以提取以下知识点: 1. **AngularJS介绍与应用:**从提供的文件内容来看,《AngularJS in Action》是一本专注于...对于想要了解AngularJS基础知识的读者,此书无疑是一个很好的学习资源。
1. **AngularJS基础知识**:AngularJS的核心特性包括数据绑定、依赖注入、指令、过滤器和服务。数据绑定使得视图与模型之间的同步变得简单;依赖注入帮助管理对象间的依赖关系;指令扩展了HTML,使其能够表达更多的...
### AngularJS基础 从基础开始,AngularJS涉及到使用控制器(Controllers)来在视图(View)和模型(Model)之间传递数据。控制器是JavaScript函数,它们能够控制HTML视图的行为。当了解AngularJS的基本概念后,学习...
### AngularJS深入解析 V5...本书特别适合那些已经掌握了AngularJS基础知识并希望进一步提高自己的技能水平的开发者。通过本书的学习,读者将能够更加自信地处理复杂的AngularJS项目,并解决开发过程中遇到的各种挑战。
### AngularJS基础知识 1. **双向数据绑定**:AngularJS的核心特性之一,允许模型(model)和视图(view)之间的数据自动同步。当模型发生变化时,视图会自动更新;反之亦然。 2. **指令**(Directives):AngularJS提供...
#### 一、AngularJS基础概览 1. **AngularJS简介**: - **定义**:AngularJS是一种开源的JavaScript框架,由Google维护,用于简化Web应用的开发过程。 - **版本**:AngularJS通常指的是1.x版本,与后来的Angular ...
- **AngularJS基础语法**:介绍AngularJS的基本语法结构,包括数据绑定、指令等。 - **项目搭建**:指导如何搭建一个AngularJS项目,包括环境配置、文件结构组织等内容。 - **简单应用示例**:通过一个或多个简单的...
4. **angular-demo**:这个文件可能是一个包含AngularJS基础示例的目录,用于演示如何初始化一个AngularJS应用,以及如何创建控制器、服务、指令等基本元素。 5. **新建文件夹**:这通常表示开发者可能在这里存放了...