七步从Angular.JS菜鸟到专家(1):如何开始

避坑指南:时间序列互相关分析(CCF)常见的5个误用场景 本文详细解析了时间序列互相关分析(CCF)中常见的5个误用场景,包括忽视平稳性检验、混淆同期相关与因果关联、误读滞后阶数、忽略自相关干扰以及样本量不足等问题。通过实际案例和技术建议,帮助数据分析师避免这些陷阱,确保CCF分析的准确性和可靠性。 阅读详情
本文由  伯乐在线  -  兔米酱  翻译自  ng-newsletter 。欢迎加入 技术翻译小组 。转载请参见文章末尾处的要求。

【感谢@兔米酱 的热心翻译。如果其他朋友也有不错的原创或译文,可以尝试推荐给伯乐在线。】

AngularJS 重新定义了前端应用的开发方式。面对HTML和JavaScript之间的界线,它非但不畏缩不前,反而正面出击,提出了有效的解决方案。

很多前端应用的开发框架,比如Backbone、EmberJS等,都要求开发者继承此框架特有的一些JavaScript对象。这种方式有其长处,但它不必要地污染了开发者自己代码的对象空间,还要求开发者去了解内存里那些抽象对象。尽管如此我们还是接受了这种方式,因为网络最初的设计无法提供我们今天所需的交互性,于是我们需要框架,来帮我们填补JavaScript和HTML之间的鸿沟。

AngularJS 填上了这条鸿沟。

而且有了它,你不用再“直接”操控DOM,只要给你的DOM注上metadata(即AngularJS里的directive们),然后让AngularJS来帮你操纵DOM。

同时,AngularJS不依赖(也不妨碍)任何其他的框架。你甚至可以基于其它的框架来开发AngularJS应用。

它就这么好用。听着挺厉害?是挺厉害的。通过这个七步系列,我们会带着你开始用AngularJS写厉害的应用——不管你之前有没有接触过。跟着我们,我们会教你成为一个专家级的AngularJS开发者。

不过首先我们得搞清楚:什么时候该用AngularJS?

AngularJS是一个 MV* 框架,最适于开发客户端的单页面应用。它不是个功能库,而是用来开发动态网页的框架。它专注于扩展HTML的功能,提供动态数据绑定(data binding),而且它能跟其它框架(如jQuery)合作融洽。

 

如果你要开发的是单页应用,AngularJS就是你的上上之选。Gmail、Google Docs、Twitter和Facebook这样的应用,都很能发挥AngularJS的长处。但是像游戏开发之类对DOM进行大量操纵、又或者单纯需要极高运行速度的应用,就不是AngularJS的用武之地了。

读过上面的介绍,现在是你学习AngularJS所要理解的第一个话题了:

1. 如何开始开发一个应用

在这个系列教程里,我们会开发一个NPR(美国全国公共广播电台)广播的音频播放器,它能显示Morning Edition节目里播出的最新故事,并在我们的浏览器里播放它们。完成版的Demo可以看这里:http://www.ng-newsletter.com/code/beginner_series/)

写AngularJS的应用,我们会一起写互动层面和展示层面。

这一开始可能让你觉得有点奇怪,特别是当你用过其他框架将这两个层面分别对待的框架时。然而一旦你摸到诀窍,AngularJS 的写法就会变成你的第二天性了。

让我们来看一个能用AngularJS开发的最简单的应用:

1
2
3
4
5
6
7
8
9
10
11
12
<!doctype html>
<html ng-app>
   <head>
     <script src= "https://ajax.googleapis.com/ajax/libs/angularjs/1.0.7/angular.min.js" ></script>
   </head>
   <body>
     <div>
       <input type= "text" ng-model= "yourName" placeholder= "Enter a name here" >
       <h1>Hello, {{ yourName }}!</h1>
     </div>
   </body>
</html>

Demo 0827

(这个交互示例可以在英文原文中体验一下。)

你看,不费吹灰之力,你就得到了双向数据绑定。

双向数据绑定,意味着你可以在后台改变数据,而这些变动立刻就会像魔法一样自动出现在View上(这里实际上没有魔法,我们待会就会看到这是怎么实现的。)

同样地,如果你对View进行改变(比如在文本框里写点什么),你的Model也会自动得到更新。

所以说,我们在应用里到底做了什么?

  • ng-app
  • ng-model=“yourName”
  • {{ yourName }}

首先,我们写上了最重要(也是最容易被忘记)的部分:<html>元素的ng-app属性。少了这个属性,AngularJS就没法开始工作。

其次,我们告诉AngularJS,对页面上的“yourName” 这个Model进行双向数据绑定。

第三,我们告诉AngularJS,在“{{ yourName }}”这个指令模版上显示“yourName”这个Model的数据。

就这么多。我们开发了一个动态应用,一个本来要耗费多得多的时间和代码来开发的应用:在这里,我们不需要给双向数据绑定写任何规则,不需要给更新model和view写任何代码,甚至不需要编写任何model——事实上,我们根本都还没开始碰JavaScript。我们不需要写代码,直到我们想开发更个性化的应用行为为止。

你会看到,以上种种都是得益于AngularJS强大的设计。

开发你的应用

这个部分我们来看一个应用,我们称它为“myApp”。跟随教程,你可以用git来clone本教程系列的代码库(具体操作方法见下),或者跟着指示自己编写代码。

创建一个index.html文件,内容如下:

1
2
3
4
5
6
7
8
9
<!doctype html>
  <html ng-app= "myApp" >
    <head>
      <script src= "https://ajax.googleapis.com/ajax/libs/angularjs/1.0.7/angular.min.js" ></script>
      <script src= "js/main.js" ></script>
    </head>
    <body>
    </body>
  </html>

然后创建文件夹js,再在里面创建文件main.js。所用的git命令如下:

1
2
mkdir js
touch js/main.js

这个HTML页面会加载两个JavaScript文件:AngularJS和我们的应用:main.js。我们在这个部分要做的所有工作,几乎都在这个main.js文件里。

为扩展和个性化我们的应用,我们得写点JavaScript代码。所有JS代码,我们都会写在main.js文件里。

angular.module

要定义一个AngularJS应用,我们先得定义一个AngularJS模块(angular.module)。所谓AngularJS模块,其实就是一系列函数的集合,当应用被启动时,这些函数就会被执行(这个教程系列里,我们还不打算介绍应用的设置和运行部分,这些在以后的教程里会讨论。)

接下来,我们就在main.js文件里来定义我们的AngularJS模块:

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

用这行代码,我们创建了叫做“myApp”的AngularJS模块。(现在先不用担心这里的第二个参数――那个空数组[],之后我们会回来讨论它。)

现在我们要在页面上实例化我们的myApp模块,并告诉AngularJS,我们的应用运行在DOM结构的哪一部分。在页面上实例化一个模块,我们使用ng-app这个指令,它的存在告诉AngularJS,我们的模块拥有那一部分的DOM结构。

传入我们应用的名字作为ng-app指令的值,我们就可以在index.html页面上实例化我们的应用(模块):

1
< html ng-app = "myApp" >

刷新页面,现在AngularJS就会引导启动我们的myApp。

我们可以把ng-app设在任何DOM元素上,然后该元素就会成为AngularJS启动运行我们应用的地方。通过这一步,我们就可以在任何页面里写AngularJS应用,即使页面的其他部分并不是用AngularJS写的应用。

1
2
3
4
<h2>I am not inside an AngularJS app</h2>
<div ng-app= "embeddedApp" >
    <h3>Inside an AngularJS app</h3>
</div>

如果一个应用会掌控整个页面,那么你就可以把ng-app指令直接写在html元素上。

定义好了我们的应用,就可以开始创建它的其他部分了。我们会使用$scope来创建,这也是AngularJS最重要的概念之一。我们会在这个七步系列的第二部分深入学习$scope服务。

那么,现在我们已经有了一个AngularJS应用的基本结构,它将成为我们NPR音频播放器应用的起点。

这个新手系列教程代码的git库在这里:https://github.com/auser/ng-newsletter-beginner-series.

要下载这个代码库到本地,首先确保你已经安装了git,然后clone这个git库,check out分支part1:

1
2
git clone https: //github.com/auser/ng-newsletter-beginner-series.git
git checkout -b part1
Jetson Nano之CSI摄像头操作方法 jetson端csi摄像头的应用方法 阅读详情

相关推荐

从仿真曲线到电路状态:用Cadence Virtuoso深度剖析CS放大器各个工作区(以电流源负载为例)

本文通过Cadence Virtuoso平台,深入剖析电流源负载CS放大器在不同工作区的表现,从仿真曲线解读电路状态。详细介绍了如何通过Vout-Vin直流扫描曲线判断MOS管工作区域(截止区、饱和区、线性区),并验证理论与仿真的一致性,提升模拟IC设计调试效率。

weixin_30940783的博客 442

anjularjs简介(一)

1.什么时候用anjularjs AngularJs(后面就简称ng了)是一个用于设计动态web应用的结构框架。首先,它是一个框架,不是类库,是像EXT一样提供一整套方案用于设计web应用。它不仅仅是一个javascript框架,因为它的核心其实是对HTML标签的增强。何为HTML标签增强?其实就是使你能够用标签完成一部分页面逻辑,具体方式就是通过自定义标签、自定义属性等,这些HTML原生没有的标...

m0_43519765的博客 457

ESP32+MAX7219二进制时钟设计与嵌入式时间映射实践

二进制时钟是嵌入式系统中数据表示与物理呈现深度耦合的典型范例,其核心在于将时间语义(年月日时分秒)解构为比特位,并通过LED点阵的空间权重布局实现直观识别。该设计依托RTC模块提供时间基准,依赖SPI协议完成微控制器与专用驱动芯片(如MAX7219)的可靠通信,涉及寄存器级配置、位图坐标变换、软硬件时序对齐等关键原理。技术价值体现在低资源占用下的高可读性人机交互,适用于教学演示、极客项目及嵌入式UI原型开发。本文聚焦ESP32平台在MicroPython环境下,结合MAX7219驱动8×8点阵实现高可靠性二

weixin_42160645的博客 301

Angular 从零开始,快速上手

AngularJS诞生于2009年,由 Misko Hevery 等人创建,后为Google所收购。是一款由Google开发优秀的前端JS框架,于2010年首次发,已经被用于Google的多款产品当中。MVVM、模块化、自动化双向数据绑定、语义化标签、依赖注入等等。AngularJS的核心思想是使用MVC()架构模式来构建Web应用程序。在AngularJS出现之前,Web开发中存在许多挑战。

JAVA开发区的博客 1万+

[TI板]MSPM0G3507——keil环境配置+烧录配置+vscode配置+空工程迁移+点灯+芯片解锁教程

本文介绍了MSPM0G3507开发环境的配置与烧录方法。主要内容包括:1)下载安装芯片支持包和SDK开发工具;2)通过串口或DAPLink两种方式实现程序烧录,详细说明了UniFlash软件的使用步骤和常见问题解决方法;3)简要提及工程迁移和LED点灯等基础操作。文章提供了完整的开发环境搭建指南,涵盖从软件安装到实际烧录的全过程,并附有相关工具下载链接和操作截图,帮助开发者快速上手MSPM0G3507开发。

qq_23220445的博客 1万+

阿里云大模型ACP认证模拟考试(三)

【摘要】:在阿里云大模型高级工程师 ACP 认证暂无真题题库的现状下,模拟题具有重要意义。其依照真实考试设计,涵盖题型、题量与分值分布,助力考生熟悉考试框架,合理分配答题时间精力,提升效率。同时,模拟题紧扣官方课程,能帮助考生精准定位知识盲点,如大模型架构原理和通义千问应用实践等重点内容,以便针对性完善知识体系。此外,通过练习模拟题,考生可掌握不同题型的解题思维与技巧,快速洞察复杂题目本质,提高答题准确率。

davidkorhenn的博客 3582

AngularJS快速入门

记录angularJS1.0学习笔记

现在的我强的可怕 2798

从零配置华为S5720交换机VLAN:Web界面与命令行双模式详解(附拓扑图)

本文详细解析华为S5720交换机VLAN配置的全过程,涵盖Web界面与命令行(CLI)双模式操作指南。从基础环境准备到多交换机环境配置同步,特别针对S5720-52X系列交换机的VLANif接口、端口分配策略及交换机堆叠技术进行深入讲解,并附实用拓扑图与配置示例,助力企业网络管理员高效完成VLAN部署。

happy2的博客 1370

angularJS简介

什么是angularJS? angularJs是谷歌推出的一款前端框架. 核心思想是前端mvc开发. 底层使用Js语言编写. angularJs采用html页面+ js来进行操作, 所有angularJs提倡整个网站都是ajax操作. angularJs是一个重型的前端框架. angularJs比较适合管理系统的页面开发. 使用angularjs: 使用fireFox, chrom浏览器可以使用....

ah_hzy的博客 1960

光学系统仿真软件:OSLO_(13).衍射光学元件设计v1

目标函数是设计DOE的关键步骤之一。目标函数可以是一个具体的光强分布,也可以是一个特定的波前形状。在仿真软件中,目标函数通常用数学表达式或数据文件来定义。假设我们需要设计一个二元相位掩模,使其在特定位置生成三个焦点。我们可以定义一个目标函数来描述这三个焦点的光强分布。# 定义目标函数"""定义一个多焦点目标函数:param x: 横坐标:param y: 纵坐标:param z1: 第一个焦点的深度:param z2: 第二个焦点的深度:param z3: 第三个焦点的深度。

kkchenjj的博客 1003

PON架构(全光网络)

目前组网架构世界上有一种最快的速度又是光,以前传统以太网络规划满足不了现在的需求。有线网 无线网 全光网络方案场景 全光网络分类 以太全光网络 PON(Pas-sive-Optical Network 无源光网络) 再典型的中大型高校网络中 推荐万兆入室 千兆到桌面的带宽设计 一般三层 (终端-接入层-汇聚层-核心层-出口(安全设备)-互联网) 单校区核心设备 一般采用两台高性能的核心交换机 双机的方式采用的是 M-LAG 多校区之间核心交换机采用1

qq_56248592的博客 6269

转: angularjs学习总结(~~很详细的教程)

1 前言 前端技术的发展是如此之快,各种优秀技术、优秀框架的出现简直让人目不暇接,紧跟时代潮流,学习掌握新知识自然是不敢怠慢。 AngularJS是google在维护,其在国外已经十分火热,可是国内的使用情况却有不小的差距,参考文献/网络文章也很匮乏。这里便将我学习AngularJS写成文档,一方面作为自己学习路程上的记录,另一方面也给有兴趣的同学一些参考。 首先我自己也是一名学习...

dayanwu2842的博客 2969

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

七步从Angular.JS菜鸟到专家(1):如何开始【转】

七步从Angular.JS菜鸟到专家(1):如何开始【转】 AngularJS 重新定义了前端应用的开发方式。面对HTML和JavaScript之间的界线,它非但不畏缩不前,反而正面出击,提出了有效的解决方案。 很多前端应用的开发框架,比如Backbone、EmberJS等,都要求开发者继承此框架特有的一些JavaScript对象。这种方式有...

weixin_30668887的博客 158

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

[学习笔记] 七步从Angular.JS菜鸟到专家(1):如何开始 [转]

【感谢@兔米酱的热心翻译。如果其他朋友也有不错的原创或译文,可以尝试推荐给伯乐在线。】 AngularJS 重新定义了前端应用的开发方式。面对HTML和JavaScript之间的界线,它非但不畏缩不前,反而正面出击,提出了有效的解决方案。 很多前端应用的开发框架,比如Backbone、EmberJS等,都要求开发者继承此框架特有的一些JavaScript对象。这种方式有其长处,但它不必要地污...

weixin_30321709的博客 145

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

七步从Angular.JS菜鸟到专家(2):Scopes

本文由 伯乐在线 - 兔米酱 翻译自 ng-newsletter。欢迎加入技术翻译小组。转载请参见文章末尾处的要求。 这是"AngularJS - 七步从菜鸟到专家"系列的第二篇。 在第一篇我们展示了如何开始搭建一个Angular应用。在这一篇里,我们要讨论一个理解AngularJS运作原理所必须的基本概念,以及你如何更好地运用它。 在这个系列教程里,我们会开发一个NPR(美

wan2three的专栏 1020

(目录贴)七步从Angular.JS菜鸟到专家

1、 七步从Angular.JS菜鸟到专家(1):如何开始

coolcao的coder点滴 4616

七步从Angular.JS菜鸟到专家(3):数据绑定和AJAX

AngularJS学习列表:七步走 Angular.js 从菜鸟到专家 (系列列表)   上一篇之后,这是"AngularJS - 七步从菜鸟到专家"系列的第三篇。 在第一篇,我们展示了如何开始搭建一个AngularaJS应用。第二篇我们讨论了scope和 $scope 的功能。 通过这整个系列的教程,我们会开发一个NPR(美国全国公共广播电台)广播的音频播放器,它能显示Morning ...

Just Code 209

七步走 Angular.js 从菜鸟到专家 (系列列表)

    Angular.js 是一个MV*(Model-View-Whatever,不管是MVC或者MVVM,统归MDV(model Drive View))JavaScript框架,其是Google推出的SPA(single-page-application)应用框架,其为我们的web应 用开发增加不少魔法变换。   头条推荐 现在就开始使用AngularJS的...

Just Code 206

七步从Angular.JS菜鸟到专家(2):Scopes(1)

 这是"AngularJS - 七步从菜鸟到专家"系列的第二篇。 在第一篇我们展示了如何开始搭建一个Angular应用。在这一篇里,我们要讨论一个理解AngularJS运作原理所必须的基本概念,以及你如何更好地运用它。 在这个系列教程里,我们会开发一个NPR(美国全国公共广播电台)广播的音频播放器,它能显示Morning Edition节目里现在播出的最新故事,并在我们的浏览器里播放。完

一个有趣、有料、有内涵的地方! 921

步从Angular.JS菜鸟到专家(1):如何开始

AngularJS 重新定义了前端应用的开发方式。面对HTML和JavaScript之间的界线,它非但不畏缩不前,反而正面出击,提出了有效的解决方案。 AD:WOT2014课程推荐:实战MSA:用开源软件搭建微服务系统   AngularJS 重新定义了前端应用的开发方式。面对HTML和JavaScript之间的界线,它非但不畏缩不前,反而正面出击,提出了有效的解...

yaoyanzhu的博客 216
上一篇: StackOverFlow精彩问答赏析:有jQuery背景的开发者如何建立起AngularJS的思维模式?
下一篇: 七步从Angular.JS菜鸟到专家(2):Scopes
highcharts
博客等级 码龄16年 5粉丝 5原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值