AngularJS开发下一代Web应用笔记(一)

一、写在最前

AngularJS是Google推出的一款Web应用开发框架。它提供了一系列兼容性良好并且可扩展的服务,包括数据绑定、DOM操作、MVC设计模式和模块加载等。

现在网上JS框架茫茫多,真不知道是到底要学习什么框架,学习了这个框架,说不定还没用在项目,又有更好的js框架出来了。前端就是不断折腾新东西,生命在于折腾~

是的,这么多的前端框架,是不是真的都要学习??答案当然不是,看所要完成的项目。这是带我的前端前辈告诉我,具体使用什么框架还是不用框架,

看项目需求,一切都以按时按质完成作为选择的标准。但是新的东西要学习,不学习就落后。

二、AngularJS的几个重要概念有什么

客户端模板   举个栗子:hello.html

模型/视图/控制器(MVC)

数据绑定

依赖注入

路由管理

指令(Angular的灵魂)

示例:购物车(源码在最后

三、对这些概念的理解  

插个曲,Angular最适合用来做单页web应用。在百度上查了单页web应用的概念。如表:

单页web应用(qq音乐)

单页Web应用(single page web application,SPA),就是只有一张Web页面的应用。

单页应用程序 (SPA) 是加载单个HTML 页面并在用户与应用程序交互时动态更新该页面的Web应用程序。

浏览器一开始会加载必需的HTML、CSS和JavaScript,所有的操作都在这张页面上完成,都由JavaScript来控制。因此,对单页应用来说模块化的开发和设计显得相当重要。

优点:
1).良好的交互体验(用户不需要重新晒新页面,获取数据都是通过ajax异步获取)
2).良好的前后端分离
3).减轻服务器压力(服务器只用出数据, 不用管展示逻辑和页面合成,吞吐能力会提高几倍)

4)..共用一套后端程序代码(不用修改后端程序代码就可以同时用于Web界面、手机、平板等多种客户端)

缺点:
1).SEO难度较高
2).前进、后退管理( 所有的页面切换需要自己建立堆栈管理)
3).初次加载耗时多(代码合并、CDN)

像游戏开发,频繁操作DOM也不适合使用Angular

客户端模板  
多页面 单页面
通过装配和链接服务器上数据来创建HTML,然后将构建好的HTML页面发送到浏览器。 Angular将模板和数据推送到浏览器中装配他们,然后服务器角色只是为模板提供静态资源以及为模板提供数据
模型/视图/控制器(MVC)  
M 代码中清晰的分离数据管理 (模型 )
V  应用程序逻辑 (控制器 )
C 及给用户呈现数据 (视图 )

Angular中的
M  模型中的数据便是存储在对象中的属性 (属性值
V   文档对象模型 (DOM)
C   控制器是 JavaScript类

C和V之间的纽带就是$scope

 

 

数据绑定 双向绑定
ng-model 所谓的双向绑定,无非是从界面的操作能实时反映到数据,数据的变更能实时展现到界面。
依赖注入 举个栗子
程序运行过程中,如需另一个对象协作(调用它的方法、访问他的属性)时,无须在代码中创建被调用者,而是依赖于外部容器的注入


在HelloController控制器中,$scope对象会把数据绑定自动传递给我们;我们不需要通过调用任何函数来创建他。只是通过将他防止在控制器的构造器中来请求它。

 

控制器helloController单词首字母大写

数据绑定  
该过程,没有在输入字段上注册一个改变值的事件监听器。
指令 Angular之可以可以编写模板如HTML一样,是因为框架核心包含了一个强大的DOM解析引擎。
扩展指令 例如:ng-controller。在HTML模板看到不属于HTML规范的新属性,这称为HTML扩展指令
自定义指令  自己定义自己需要的指令(据说指令是Angular的灵魂)

附购物车源码:

<!DOCTYPE html>
<html ng-app>
<head>
    <meta charset="UTF-8">
    <title>购物车</title>

</head>
<body ng-controller="CartController">
    <h1>Your order</h1>
    <div ng-repeat="item in items">
        <span>{{item.title}}</span>
        <input ng-model="item.quantity">
        <span>{{item.price | currency}}</span>
        <span>{{item.price * item.quantity | currency}}</span>
        <button ng-click="remove($index)">Remove</button>
    </div>

</body>
<script src="../assets/js/angular-1.3.0.js"></script>
<script>
function CartController($scope){

    // currency是过滤器,用来转换文本

    // $index参数   包含了它在ng-repeat的索引值

    //splice()   arrayObject.splice(index,howmany,item1,.....,itemX)

    // 定义一个一维数组存放对象
    $scope.items = [
        {title: ‘Paint pots‘,quantity:8,price:3.95},
        {title: ‘Polka dots‘,quantity:17,price:12.95},
        {title: ‘Pebbles‘,quantity:5,price:6.95}
    ];

    $scope.remove = function(index){
        $scope.items.splice(index,1);
    }

}
</script>
</html>

运行后结果:

   
时间: 2024-08-23 08:06:50

AngularJS开发下一代Web应用笔记(一)的相关文章

用angularjs开发下一代web应用(二):angularjs应用骨架(一)

1.调用angularjs 1>加载angularjs库 可以从google的CDN(内容分发网络)中加载,获取快,并且可以在多个应用之间缓存脚本库(建议使用这种方式,但是中国的特殊国情,不能用这种方式): <script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.0.4/angular.min.js"></script> 本地主机方式. 2>使用ng-app申明angular的边界

用angularjs开发下一代web应用(二):angularjs应用骨架(二)

1.浅谈非入侵式JavaScript <div ng-click="doSomething()">...</div>这些指令和原来的事件处理器有以下不同之处: 在所有浏览器中具有相同的行为.Angular将会帮你屏蔽差异性. 不会在全局命名空间中进行操作.你所指定的表达式只能访问元素控制器作用域范围内的函数和数据. 2.列表.表格以及其他迭代型元素         ng-repeat可能是最有用的Angular指令了,它可以根据集合中的项目一次创建一组元素的多份

用angularjs开发下一代web应用(一):angularjs简介

1.客户端模板 与普通的web方式及ajax方式不同, 在angular中,模板和数据都会发送到浏览器中,然后在客户端进行装配.这样一来,服务器的角色就变成了仅仅为这些模板提供一些静态资源,然后为这些模板提供所需的正确数据.{{ }}:单向的数据绑定 2.MVC 在angular应用中,视图就是DOM({{ }}),控制器就是js类(ng-controller),而模型数据则被存储在对象的属性中($scope:将数据绑定到UI的元素上). 3.数据绑定 仅仅声明UI中的某部分需要映射到某个js属

[在读]用AngularJS开发下一代Web应用

内容简介 AngularJS是一款来自Google的前端JS框架,它的核心特性有:MVC.双向数据绑定.指令和语义化标签.模块化工具.依赖注入.HTML模板,以及对常用工具的封装,例如$http.$cookies.$location等.AngularJS框架的体积非常小,但是设计理念和功能却非常强大,值得前端开发者深入学习. <用AngularJS开发下一代Web应用>对AngularJS框架的核心特性做了全面的介绍,包括常用的开发工具和开发环境.<用AngularJS开发下一代Web应

用AngularJS开发下一代Web应用

原文:https://github.com/edagarli/AngularJSWeb 书中源代码:https://github.com/shyamseshadri/angularjs-book 用AngularJS开发下一代Web应用

用AngularJS开发下一代Web应用 系列入门基础教程

开篇介绍 AngularJS是什么东西?我觉得不用再描述了.可自行去充电一下.按照惯例,让我们先看看一个Hello World的开门简介吧. <!doctype html> <html ng-app> <head> <script src="http://code.angularjs.org/angular-1.0.1.min.js"></script> </head> <body> Your name

读《AngularJS开发下一代Web应用》有感(一)

任何Web应用使用AngularJS必须的两件事: 1.加载angular.js 2.使用ng-app告知AngularJS管理页面中的哪一部分DOM元素,建议在html标签中添加 <html ng-app> ... </html>

用AngularJS开发下一代Web应用pdf

下载地址:网盘下载 内容简介  · · · · · · AngularJS是一款来自Google的前端JS框架,它的核心特性有:MVC.双向数据绑定.指令和语义化标签.模块化工具.依赖注入.HTML模板,以及对常用工具的封装,例如$http.$cookies.$location等.AngularJS框架的体积非常小,但是设计理念和功能却非常强大,值得前端开发者深入学习. 本书对AngularJS框架的核心特性做了全面的介绍,包括常用的开发工具和开发环境.作为国内第一本关于AngularJS的书籍

使用AngularJS开发下一代Web应用

原版的:https://github.com/edagarli/AngularJSWeb 来源书:https://github.com/shyamseshadri/angularjs-book 版权声明:本文博客原创文章,博客,未经同意,不得转载.