成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

七步從Angular.JS菜鳥到專家(1):如何開始

開發(fā) 前端
AngularJS 重新定義了前端應(yīng)用的開發(fā)方式。面對HTML和JavaScript之間的界線,它非但不畏縮不前,反而正面出擊,提出了有效的解決方案。

AngularJS 重新定義了前端應(yīng)用的開發(fā)方式。面對HTML和JavaScript之間的界線,它非但不畏縮不前,反而正面出擊,提出了有效的解決方案。

很多前端應(yīng)用的開發(fā)框架,比如Backbone、EmberJS等,都要求開發(fā)者繼承此框架特有的一些JavaScript對象。這種方式有其長 處,但它不必要地污染了開發(fā)者自己代碼的對象空間,還要求開發(fā)者去了解內(nèi)存里那些抽象對象。盡管如此我們還是接受了這種方式,因?yàn)榫W(wǎng)絡(luò)最初的設(shè)計(jì)無法提供 我們今天所需的交互性,于是我們需要框架,來幫我們填補(bǔ)JavaScript和HTML之間的鴻溝。

AngularJS 填上了這條鴻溝。

而且有了它,你不用再“直接”操控DOM,只要給你的DOM注上metadata(即AngularJS里的directive們),然后讓AngularJS來幫你操縱DOM。

同時(shí),AngularJS不依賴(也不妨礙)任何其他的框架。你甚至可以基于其它的框架來開發(fā)AngularJS應(yīng)用。

它就這么好用。聽著挺厲害?是挺厲害的。通過這個(gè)七步系列,我們會帶著你開始用AngularJS寫厲害的應(yīng)用——不管你之前有沒有接觸過。跟著我們,我們會教你成為一個(gè)專家級的AngularJS開發(fā)者。

不過首先我們得搞清楚:什么時(shí)候該用AngularJS?

AngularJS是一個(gè) MV* 框架,最適于開發(fā)客戶端的單頁面應(yīng)用。它不是個(gè)功能庫,而是用來開發(fā)動態(tài)網(wǎng)頁的框架。它專注于擴(kuò)展HTML的功能,提供動態(tài)數(shù)據(jù)綁定(data binding),而且它能跟其它框架(如jQuery)合作融洽。

 

如果你要開發(fā)的是單頁應(yīng)用,AngularJS就是你的上上之選。Gmail、Google Docs、Twitter和Facebook這樣的應(yīng)用,都很能發(fā)揮AngularJS的長處。但是像游戲開發(fā)之類對DOM進(jìn)行大量操縱、又或者單純需要 極高運(yùn)行速度的應(yīng)用,就不是AngularJS的用武之地了。

讀過上面的介紹,現(xiàn)在是你學(xué)習(xí)AngularJS所要理解的第一個(gè)話題了:

1. 如何開始開發(fā)一個(gè)應(yīng)用

在這個(gè)系列教程里,我們會開發(fā)一個(gè)NPR(美國全國公共廣播電臺)廣播的音頻播放器,它能顯示Morning Edition節(jié)目里播出的最新故事,并在我們的瀏覽器里播放它們。完成版的Demo可以看這里:http://www.ng-newsletter.com/code/beginner_series/

寫AngularJS的應(yīng)用,我們會一起寫互動層面和展示層面。

這一開始可能讓你覺得有點(diǎn)奇怪,特別是當(dāng)你用過其他框架將這兩個(gè)層面分別對待的框架時(shí)。然而一旦你摸到訣竅,AngularJS 的寫法就會變成你的第二天性了。

讓我們來看一個(gè)能用AngularJS開發(fā)的最簡單的應(yīng)用:

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

Demo 0827

(這個(gè)交互示例可以在英文原文中體驗(yàn)一下。)

你看,不費(fèi)吹灰之力,你就得到了雙向數(shù)據(jù)綁定。

雙向數(shù)據(jù)綁定,意味著你可以在后臺改變數(shù)據(jù),而這些變動立刻就會像魔法一樣自動出現(xiàn)在View上(這里實(shí)際上沒有魔法,我們待會就會看到這是怎么實(shí)現(xiàn)的。)

同樣地,如果你對View進(jìn)行改變(比如在文本框里寫點(diǎn)什么),你的Model也會自動得到更新。

所以說,我們在應(yīng)用里到底做了什么?

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

首先,我們寫上了最重要(也是最容易被忘記)的部分:<html>元素的ng-app屬性。少了這個(gè)屬性,AngularJS就沒法開始工作。

其次,我們告訴AngularJS,對頁面上的“yourName” 這個(gè)Model進(jìn)行雙向數(shù)據(jù)綁定。

第三,我們告訴AngularJS,在“{{ yourName }}”這個(gè)指令模版上顯示“yourName”這個(gè)Model的數(shù)據(jù)。

就這么多。我們開發(fā)了一個(gè)動態(tài)應(yīng)用,一個(gè)本來要耗費(fèi)多得多的時(shí)間和代碼來開發(fā)的應(yīng)用:在這里,我們不需要給雙向數(shù)據(jù)綁定寫任何規(guī)則,不需要給更新 model和view寫任何代碼,甚至不需要編寫任何model——事實(shí)上,我們根本都還沒開始碰JavaScript。我們不需要寫代碼,直到我們想開 發(fā)更個(gè)性化的應(yīng)用行為為止。

你會看到,以上種種都是得益于AngularJS強(qiáng)大的設(shè)計(jì)。

開發(fā)你的應(yīng)用

這個(gè)部分我們來看一個(gè)應(yīng)用,我們稱它為“myApp”。跟隨教程,你可以用git來clone本教程系列的代碼庫(具體操作方法見下),或者跟著指示自己編寫代碼。

創(chuàng)建一個(gè)index.html文件,內(nèi)容如下:

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

然后創(chuàng)建文件夾js,再在里面創(chuàng)建文件main.js。所用的git命令如下:

  1. mkdir js 
  2. touch js/main.js 

這個(gè)HTML頁面會加載兩個(gè)JavaScript文件:AngularJS和我們的應(yīng)用:main.js。我們在這個(gè)部分要做的所有工作,幾乎都在這個(gè)main.js文件里。

為擴(kuò)展和個(gè)性化我們的應(yīng)用,我們得寫點(diǎn)JavaScript代碼。所有JS代碼,我們都會寫在main.js文件里。

angular.module

要定義一個(gè)AngularJS應(yīng)用,我們先得定義一個(gè)AngularJS模塊(angular.module)。所謂AngularJS模塊,其實(shí) 就是一系列函數(shù)的集合,當(dāng)應(yīng)用被啟動時(shí),這些函數(shù)就會被執(zhí)行(這個(gè)教程系列里,我們還不打算介紹應(yīng)用的設(shè)置和運(yùn)行部分,這些在以后的教程里會討論。)

接下來,我們就在main.js文件里來定義我們的AngularJS模塊:

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

用這行代碼,我們創(chuàng)建了叫做“myApp”的AngularJS模塊。(現(xiàn)在先不用擔(dān)心這里的第二個(gè)參數(shù)――那個(gè)空數(shù)組[],之后我們會回來討論它。)

現(xiàn)在我們要在頁面上實(shí)例化我們的myApp模塊,并告訴AngularJS,我們的應(yīng)用運(yùn)行在DOM結(jié)構(gòu)的哪一部分。在頁面上實(shí)例化一個(gè)模塊,我們使用ng-app這個(gè)指令,它的存在告訴AngularJS,我們的模塊擁有那一部分的DOM結(jié)構(gòu)。

傳入我們應(yīng)用的名字作為ng-app指令的值,我們就可以在index.html頁面上實(shí)例化我們的應(yīng)用(模塊):

  1. <html ng-app="myApp"> 

刷新頁面,現(xiàn)在AngularJS就會引導(dǎo)啟動我們的myApp。

我們可以把ng-app設(shè)在任何DOM元素上,然后該元素就會成為AngularJS啟動運(yùn)行我們應(yīng)用的地方。通過這一步,我們就可以在任何頁面里寫AngularJS應(yīng)用,即使頁面的其他部分并不是用AngularJS寫的應(yīng)用。

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

如果一個(gè)應(yīng)用會掌控整個(gè)頁面,那么你就可以把ng-app指令直接寫在html元素上。

定義好了我們的應(yīng)用,就可以開始創(chuàng)建它的其他部分了。我們會使用$scope來創(chuàng)建,這也是AngularJS最重要的概念之一。我們會在這個(gè)七步系列的第二部分深入學(xué)習(xí)$scope服務(wù)。

那么,現(xiàn)在我們已經(jīng)有了一個(gè)AngularJS應(yīng)用的基本結(jié)構(gòu),它將成為我們NPR音頻播放器應(yīng)用的起點(diǎn)。

這個(gè)新手系列教程代碼的git庫在這里:https://github.com/auser/ng-newsletter-beginner-series.

要下載這個(gè)代碼庫到本地,首先確保你已經(jīng)安裝了git,然后clone這個(gè)git庫,check out分支part1:

  1. git clone https://github.com/auser/ng-newsletter-beginner-series.git 
  2. git checkout -b part1 
責(zé)任編輯:陳四芳 來源: 伯樂在線
相關(guān)推薦

2013-11-06 10:10:15

AngularJSScopes

2013-10-08 11:25:57

AngularJSAJAX

2013-10-29 14:57:17

AngularJS項(xiàng)目

2013-11-06 13:55:27

AngularJS服務(wù)

2013-10-23 13:25:28

AngularJS應(yīng)用

2017-11-06 13:20:08

前端Angular.jsVue.js

2010-08-10 13:15:36

Flex配置

2019-03-10 20:37:14

Python編程語言

2023-04-28 14:38:47

2013-08-12 17:41:42

Angular.jsAngularJS

2017-03-03 10:09:30

2009-11-06 14:33:27

WCF代理節(jié)點(diǎn)

2011-01-06 09:15:24

ESXESXi

2009-11-06 13:59:09

WCF Service

2017-04-21 14:21:53

深度學(xué)習(xí)神經(jīng)網(wǎng)絡(luò)

2009-07-30 18:08:14

IT與業(yè)務(wù)融合

2011-07-18 16:11:32

域控制器

2011-09-05 17:36:24

2018-02-24 18:12:30

2010-04-06 14:45:46

vi編輯器
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 亚洲精品免费视频 | 亚洲精品乱码久久久久久久久 | a级在线免费观看 | 亚洲精品自在在线观看 | 91精品国产综合久久婷婷香蕉 | 国产成人网 | 国产精品国产成人国产三级 | 国产在线视频一区 | 最新高清无码专区 | 日本一二三区电影 | 九九色综合 | 96久久久久久 | xx视频在线观看 | 欧美精品一区二区在线观看 | 精久久久久| 国产在线观看 | 一区二区在线免费观看视频 | 又爽又黄axxx片免费观看 | 国产成人精品一区二区三区四区 | 成人免费视频网站在线观看 | 日韩在线免费播放 | 一区二区三区四区国产 | 黄色网址大全在线观看 | 九色综合网 | 中文字幕欧美一区 | 久久精品91 | 亚洲视频中文字幕 | 精品视频一区二区三区四区 | 亚洲狠狠 | 成人午夜性成交 | 正在播放国产精品 | 日韩欧美一级精品久久 | 日韩高清av| 激情欧美一区二区三区 | 精品99爱视频在线观看 | 成人一区二区三区视频 | 欧美一区二区三区 | 精品国产一二三区 | 国产一区二区三区在线 | 龙珠z国语版在线观看 | 日本久久网|