Angular开发者指南(一)入门介绍

 

什么是Angular
AngularJS是动态Web应用程序的结构框架。 它允许您使用HTML作为模板语言,并允许您扩展HTML的语法以清晰,简洁地表达应用程序的组件。AngularJS的数据绑定和依赖注入消除了许多你不得不编写的代码。这一切都发生在浏览器中,使其成为任何服务器技术的理想合作伙伴。
动态应用程序和静态文档之间的动态适配常常通过以下方式解决

  • 一个库:一组在编写网络应用程序时非常有用的函数。你的代码是负责在它调用库中它认为合适的。 例如jQuery
  • 框架:Web应用程序的特定实现,其中你的代码填充详细信息。框架是负责,当它需要某些应用程序特定时调用你的代码。 例如,durandal,ember等。

AngularJS采取另一种方法。 它尝试通过创建新的HTML结构来最小化文档中心HTML和应用程序需要的阻抗之间的不匹配。 AngularJS通过我们调用指令的构造来教导浏览器的新语法。 示例包括:

  • 数据绑定:{{}}

  • DOM控制结构,用于重复,显示和隐藏DOM片段

  • 支持表单和表单验证

  • 将新行为附加到DOM元素,例如DOM事件处理

  • 将HTML分组为可重用组件。

一个完整的客户端解决方案
AngularJS不是构建Web应用程序的客户端的整体谜题中的单一部分。它处理所有你曾经用手写的DOM和AJAX粘合代码,并把它放在一个定义良好的结构中。这使得AngularJS认为应该如何构建一个CRUD(创建,读取,更新,删除)应用程序。 但是,虽然它的意见,它也试图确保其意见只是一个起点,你可以轻易改变。 AngularJS提供了以下开箱即用的:

  • 在一个连贯的集合中构建一个CRUD应用程序所需的一切:数据绑定,基本模板指令,表单验证,路由,深层链接,可重用组件和依赖注入

  • 可测试性故事:单元测试,端到端测试,模拟和测试线束

  • 发布应用程序以目录布局和测试脚本为起点。

AngularJS的讨巧之处
AngularJS通过向开发人员提供更高级别的抽象来简化应用程序开发。像任何抽象一样,它以灵活性为代价。换句话说,不是每个应用程序都适合AngularJS。AngularJS是用CRUD应用程序构建的。幸运的是,CRUD应用程序代表了大多数Web应用程序。 为了理AngularJS有什么好处,但它有助于理解什么时候一个应用程序不是一个很好的适合AngularJS。
游戏和GUI编辑器是使用密集和棘手的DOM操作的应用程序的例子。这些类型的应用程序不同于CRUD应用程序,因此可能不是一个很好适合AngularJS。在这些情况下,最好使用具有较低抽象级别的库,例如jQuery。
AngularJS的禅

  • 注册回调:注册回调会杂乱你的代码,使得很难看到树的森林。 删除常见的样板代码,如回调是一件好事。 它大大减少了你必须做的JavaScript编码量,它使你更容易看到你的应用程序做什么。

  • 以编程方式操纵HTML DOM:操纵HTML DOM是AJAX应用程序的基石,但它很繁琐,容易出错。通过声明性地描述在应用程序状态更改时UI应该如何更改,您将从低级DOM操作任务中释放出来。大多数使用AngularJS编写的应用程序从不需要以编程方式操作DOM,尽管如果你愿意的话。

  • 与UI进行数据封送:CRUD操作构成了大多数AJAX应用程序的任务。 从服务器到内部对象到HTML表单的编组数据流,允许用户修改表单,验证表单,显示验证错误,返回到内部模型,然后返回到服务器,创建了很多模板文件代码。 AngularJS消除了几乎所有的这个样板,留下描述应用程序的整体流程的代码,而不是所有的实现细节。

  • 写入大段的初始化代码只是为了开始:通常你需要写很多管道只是为了获得一个基本的“Hello World”AJAX应用程序工作。使用AngularJS,您可以使用服务轻松引导应用程序,这些服务以类似Guice的依赖注入方式自动注入到应用程序中。这允许你快速开始开发功能。作为奖励,你可以完全控制自动化测试中的初始化过程。

Angular(一)的更多相关文章

  1. Angular杂谈系列1-如何在Angular2中使用jQuery及其插件

    jQuery,让我们对dom的操作更加便捷.由于其易用性和可扩展性,jQuer也迅速风靡全球,各种插件也是目不暇接. 我相信很多人并不能直接远离jQuery去做前端,因为它太好用了,我们以前做的东西大 ...

  2. Angular企业级开发(5)-项目框架搭建

    1.AngularJS Seed项目目录结构 AngularJS官方网站提供了一个angular-phonecat项目,另外一个就是Angular-Seed项目.所以大多数团队会基于Angular-S ...

  3. TypeScript: Angular 2 的秘密武器(译)

    本文整理自Dan Wahlin在ng-conf上的talk.原视频地址: https://www.youtube.com/watch?v=e3djIqAGqZo 开场白 开场白主要分为三部分: 感谢了 ...

  4. angular实现统一的消息服务

    后台API返回的消息怎么显示更优雅,怎么处理才更简洁?看看这个效果怎么样? 自定义指令和服务实现 自定义指令和服务实现消息自动显示在页面的顶部,3秒之后消失 1. 显示消息 这种显示消息的方式是不是有 ...

  5. div实现自适应高度的textarea,实现angular双向绑定

    相信不少同学模拟过腾讯的QQ做一个聊天应用,至少我是其中一个. 过程中我遇到的一个问题就是QQ输入框,自适应高度,最高高度为3row. 如果你也像我一样打算使用textarea,那么很抱歉,你一开始就 ...

  6. Angular企业级开发-AngularJS1.x学习路径

    博客目录 有链接的表明已经完成了,其他的正在建设中. 1.AngularJS简介 2.搭建Angular开发环境 3.Angular MVC实现 4.[Angular项目目录结构] 5.[SPA介绍] ...

  7. Angular企业级开发(4)-ngResource和REST介绍

    一.RESTful介绍 RESTful维基百科 REST(表征性状态传输,Representational State Transfer)是Roy Fielding博士在2000年他的博士论文中提出来 ...

  8. Angular企业级开发(3)-Angular MVC实现

    1.MVC介绍 Model-View-Controller 在20世纪80年代为程序语言Smalltalk发明的一种软件架构.MVC模式的目的是实现一种动态的程序设计,使后续对程序的修改和扩展简化,并 ...

  9. Angular企业级开发(2)-搭建Angular开发环境

    1.集成开发环境 个人或团队开发AngularJS项目时,有很多JavaScript编辑器可以选择.使用优秀的集成开发环境(Integrated Development Environment)能节省 ...

  10. 前端MVC学习总结(一)——MVC概要与angular概要、模板与数据绑定

    一.前端MVC概要 1.1.库与框架的区别 框架是一个软件的半成品,在全局范围内给了大的约束.库是工具,在单点上给我们提供功能.框架是依赖库的.AngularJS是框架而jQuery则是库. 1.2. ...

随机推荐

  1. XXE--XML外部实体注入漏洞

    XXE漏洞原理 XXE漏洞全称XML External Entity Injection 即xml外部实体注入漏洞,XXE漏洞发生在应用程序解析XML输入时,没有禁止外部实体的加载,导致可加载恶意外部 ...

  2. POJ 2993:Emag eht htiw Em Pleh

    Emag eht htiw Em Pleh Time Limit: 1000MS   Memory Limit: 65536KB   64bit IO Format: %I64d & %I64 ...

  3. BZOJ 3197 [Sdoi2013]assassin

    题解: 树上Hash 首先重心在边上就把边分裂 以重心为根建树,这样两个根一定对应 然后f[i][j]表示i匹配另一棵的j节点的最小代价 把他们的儿子摘出来做最小权匹配即可 #include<i ...

  4. Win10教育版VL版kms密钥激活

    1.右键开始图标,或者win+x,选择Windows PowerShell(管理员): 2.依次执行下面的命令,分别表示安装win10教育版密钥,设置kms服务器,激活win10教育版: slmgr ...

  5. arp攻击 (可查看同一局域网他人手机照片)

    国家法律一定要遵守,知识要用在对的地方. 本贴只为了和大家交流学习,请勿用在其他地方,损害任何人的利益. 今天我,来说一下arp攻击的原理和教程 原理什么的还是自行百度好,因为专业的说明是严谨而又经得 ...

  6. Java程序员想年后跳槽,对JVM没有深入的理解,我劝你还是别跳了

    前言 Java 虚拟机是学习 Java 的基础,也是迈入高级 Java 开发工程师的必备知识点.所以今天这篇文章我们来聊聊如何从零开始学习 Java 虚拟机. 深入浅出Java虚拟机 对于刚刚接触 J ...

  7. Feign整合测试

    1.测试使用 (1)服务调用方引入依赖 <dependency> <groupId>org.springframework.cloud</groupId> < ...

  8. 最大子矩阵和(二维矩阵转一维DP)

    题目描述 蒜头君拿到了一个矩阵,他想知道其中的最大非空子矩阵和是多少. 输入格式 第一行输入两个整数 n,m代表这个矩阵的行数和列数.接下来n行,每行m个整数 ai1,ai2,ai3⋯aim.(1≤m ...

  9. 吴裕雄--天生自然TensorFlow高层封装:Estimator-自定义模型

    # 1. 自定义模型并训练. import numpy as np import tensorflow as tf from tensorflow.examples.tutorials.mnist i ...

  10. 01 语言基础+高级:1-2 面向对象和封装_day06【类与对象、封装、构造方法】

    day06[类与对象.封装.构造方法] 面向对象类与对象三大特征——封装构造方法 能够理解面向对象的思想能够明确类与对象关系能够掌握类的定义格式能够掌握创建对象格式,并访问类中的成员能够完成手机类的练 ...