Angular入門

Angular 簡介

什么是 AngularJS

  • 一款非常優(yōu)秀的前端高級 JS 框架
  • 最早由 Misko Hevery 等人創(chuàng)建
  • 2009 年被 Google 公式收購,用于其多款產(chǎn)品
  • 目前有一個全職的開發(fā)團隊繼續(xù)開發(fā)和維護這個庫
  • 有了這一類框架就可以輕松構(gòu)建 SPA 應(yīng)用程序
  • 輕松構(gòu)建 SPA(單一頁面應(yīng)用程序)
  • 單一頁面應(yīng)用程序:
    • 只有一個頁面(整個應(yīng)用的一個載體)
    • 內(nèi)容全部是由AJAX方式呈現(xiàn)出啦的
  • 其核心就是通過指令擴展了 HTML,通過表達式綁定數(shù)據(jù)到 HTML。

為什么使用 AngularJS

  • 更少的代碼远豺,實現(xiàn)更強勁的功能
  • 將一些以前在后臺開發(fā)中使用的思想帶入前端開發(fā)
  • 帶領(lǐng)當前市面上的框架走向模式化或者架構(gòu)化

AngularJS 的核心特性

  • MVC
  • 模塊化
  • 自動化雙向數(shù)據(jù)綁定
  • 指令系統(tǒng)

相關(guān)鏈接

Angular 上手

安裝 Angular

  • 下載 Angular.js 的包

  • 使用 CDN 上的 Angular.js

  • 使用 Bower 安裝

    bower install angular
    
  • 使用 NPM 安裝

    npm install angular
    
  • 每種方式安裝包泌神,本質(zhì)都是將angular的庫下載到當前文件夾中

  • angular中最重要的概念是指令(directive)

  • ng-model 是雙向數(shù)據(jù)綁定的指令,效果就是將當前元素的value屬性和模型中的user.name建立綁定關(guān)系

  • JS: BOM DOM ES

使用總結(jié)

運行官方文檔

CDN的優(yōu)勢

Content Delivery Network

  • 節(jié)省自己服務(wù)器的帶寬壓力和流量

Angular 基礎(chǔ)概念

MVC 思想

什么是 MVC 思想

  • 將應(yīng)用程序的組成劃分為三個部分:Model View Controller
  • 控制器的作用就是初始化模型用的赔癌,組織調(diào)度相應(yīng)的處理模型须鼎;
  • 模型就是用于存儲數(shù)據(jù)的,處理數(shù)據(jù)與業(yè)務(wù)邏輯
  • 視圖用于以有好的方式向用戶展現(xiàn)數(shù)據(jù)
    優(yōu)勢:每個模塊分工明確鲸伴,職責清晰,復(fù)用晋控。
    目的:模塊化和復(fù)用
mvc.png
  • 登陸案例
  • 模型
    • 我們數(shù)據(jù)庫中所有用戶的信息
    • 接受控制器傳來的用戶名和密碼進行校驗的業(yè)務(wù)邏輯并返回true/false
  • 控制器
    • 接受用戶在界面上填寫的用戶名和密碼
    • 將用戶名和密碼交給模型
  • 視圖
    • 給用戶呈現(xiàn)一個表單
    • 接受用戶輸入內(nèi)容汞窗,并將其提交給控制器
    • 根據(jù)控制器返回的數(shù)據(jù),響應(yīng)用戶頁面

模塊(Module)

//創(chuàng)建一個名字叫MyApp的模塊赡译,第二個參數(shù)指的是該模塊依賴哪些模塊
var myApp = angular.module("MyApp",[]),
  • 建立模塊仲吏,通過ng-app指令指定不同的模塊,劃分應(yīng)用程序結(jié)構(gòu),對頁進行業(yè)務(wù)上的劃分蜘矢;模塊間相互獨立
  • 也可以將重復(fù)使用的指令或過濾器之類的做成模塊便于使用
  • angular.module方法傳遞兩個參數(shù)才是創(chuàng)建模塊狂男,一個參數(shù)是獲取模塊
  • 便于協(xié)同分工和維護

控制器(Controller)

angular.mdule ('OneApp',[])
            .controller('HelloController',[
                '$scope',
                function($scope){
                    $scope.p={
                        name:'zhangsan'
                     };
                  }
              ]);
控制器的三種職責
  • 為應(yīng)用中的模型設(shè)置初始狀態(tài)
  • 通過$scope對象把數(shù)據(jù)模型或函數(shù)行為暴露給視圖
    -監(jiān)視模型的變化综看,做出相應(yīng)的動作
    例如

$scope.$watch('totalCart',calculateDiscount)
watch只能監(jiān)視$scope中已有的屬性

視圖模型($scope)

  • 視圖和控制器之間的橋梁
  • 用于在視圖和控制器之間傳遞數(shù)據(jù)
  • 利用$scope暴露數(shù)據(jù)模型(數(shù)據(jù)品腹、行為)

表達式(Expression)

作用

把 數(shù)據(jù)綁定到html上

語法

寫在雙大括號內(nèi){{expression}}
包含文字,運算符红碑,變量

與JavaScript表達式對比

單向數(shù)據(jù)綁定

雙向數(shù)據(jù)綁定

Angular 指令系統(tǒng)

ng-app指令


angular找到第一個ng-app過后就不會再找,手動的讓第二個div被myApp2管理

angular.bootstrap(document.querySelector('[ng-app="myApp2"]'),['myApp2']);

也可以通過模塊依賴關(guān)系舞吭,創(chuàng)建一個總模塊,依賴其他多個模塊

angular.module('myApp', ['myApp1', 'myApp2']);

ng-bind指令

ng-bind指令在綁定的值包含HTML時會轉(zhuǎn)義析珊,為了安全(跨站腳本攻擊),需要引入sanitize.js,并且該模塊要添加依賴ngSanitize模塊羡鸥。

<script src="bower_components/angular-sanitize/angular-sanitize.js"></script>

使用自定義的模塊才可以依賴別的包里面定義模塊,angular定義的默認模塊沒有依賴任何
angular.module('myApp', ['ngSanitize']);

ng-model指令

用于綁定應(yīng)用程序數(shù)據(jù)到html控制器(input select text)的值忠寻,可以將輸入的值與angularJS創(chuàng)建的變量綁定惧浴。

ng-repeat指令

ng-class指令

ng-show /ng-hide指令

ng-link/ng-src指令

自定義指令

過濾器filter

作用

常見的過濾器有

date過濾器

主要用于時間格式的轉(zhuǎn)換

limitTo過濾器
filter過濾器

filter過濾器會根據(jù)設(shè)置的檢索數(shù)據(jù)過濾未匹配到的數(shù)據(jù)內(nèi)容,也可以通過設(shè)置檢索條件為一個對象奕剃,實現(xiàn)在指定屬性中檢索


通過自定義一個比較函數(shù)衷旅,在前臺為filter指定的第二個參數(shù)實現(xiàn)

json過濾器

可以將一個對象以json形式解析,利用它纵朋,我們可以在界面上直觀的查看一些對象的成員柿顶,這也是調(diào)試的好辦法。

自定義過濾器

實現(xiàn)自定義數(shù)據(jù)格式轉(zhuǎn)換

Form表單

Form表單-----驗證

Form表單-----驗證規(guī)則

服務(wù)(service)

創(chuàng)建服務(wù)

通過模塊的service方法創(chuàng)建一個服務(wù)

內(nèi)置服務(wù)——$http

此服務(wù)是AngularJS中處理AJAX的服務(wù)
請求數(shù)據(jù)方式$http.jsonp(url).success(function(res){}

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末操软,一起剝皮案震驚了整個濱河市嘁锯,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌聂薪,老刑警劉巖家乘,帶你破解...
    沈念sama閱讀 221,273評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異藏澳,居然都是意外死亡仁锯,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,349評論 3 398
  • 文/潘曉璐 我一進店門笆载,熙熙樓的掌柜王于貴愁眉苦臉地迎上來扑馁,“玉大人,你說我怎么就攤上這事凉驻∧逡” “怎么了?”我有些...
    開封第一講書人閱讀 167,709評論 0 360
  • 文/不壞的土叔 我叫張陵涝登,是天一觀的道長雄家。 經(jīng)常有香客問我,道長胀滚,這世上最難降的妖魔是什么趟济? 我笑而不...
    開封第一講書人閱讀 59,520評論 1 296
  • 正文 為了忘掉前任乱投,我火速辦了婚禮,結(jié)果婚禮上顷编,老公的妹妹穿的比我還像新娘戚炫。我一直安慰自己,他們只是感情好媳纬,可當我...
    茶點故事閱讀 68,515評論 6 397
  • 文/花漫 我一把揭開白布双肤。 她就那樣靜靜地躺著,像睡著了一般钮惠。 火紅的嫁衣襯著肌膚如雪茅糜。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,158評論 1 308
  • 那天素挽,我揣著相機與錄音蔑赘,去河邊找鬼。 笑死预明,一個胖子當著我的面吹牛缩赛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播贮庞,決...
    沈念sama閱讀 40,755評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼峦筒,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了窗慎?” 一聲冷哼從身側(cè)響起物喷,我...
    開封第一講書人閱讀 39,660評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎遮斥,沒想到半個月后峦失,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,203評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡术吗,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,287評論 3 340
  • 正文 我和宋清朗相戀三年尉辑,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片较屿。...
    茶點故事閱讀 40,427評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡隧魄,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出隘蝎,到底是詐尸還是另有隱情购啄,我是刑警寧澤,帶...
    沈念sama閱讀 36,122評論 5 349
  • 正文 年R本政府宣布嘱么,位于F島的核電站狮含,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜几迄,卻給世界環(huán)境...
    茶點故事閱讀 41,801評論 3 333
  • 文/蒙蒙 一蔚龙、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧映胁,春花似錦木羹、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,272評論 0 23
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽务荆。三九已至妆距,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間函匕,已是汗流浹背娱据。 一陣腳步聲響...
    開封第一講書人閱讀 33,393評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留盅惜,地道東北人中剩。 一個月前我還...
    沈念sama閱讀 48,808評論 3 376
  • 正文 我出身青樓,卻偏偏與公主長得像抒寂,于是被迫代替她去往敵國和親结啼。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,440評論 2 359

推薦閱讀更多精彩內(nèi)容

  • angular簡介 angular是一個框架屈芜,諸多類庫的集合郊愧,以數(shù)據(jù)和邏輯為核心; MVC modal-view-...
    Rella7閱讀 576評論 0 2
  • AngularJS是什么井佑?AngularJs(后面就簡稱ng了)是一個用于設(shè)計動態(tài)web應(yīng)用的結(jié)構(gòu)框架属铁。首先,它是...
    200813閱讀 1,611評論 0 3
  • 簡介# AngularJS 是一個為動態(tài)WEB應(yīng)用設(shè)計的結(jié)構(gòu)框架躬翁,提供給大家一種新的開發(fā)應(yīng)用方式焦蘑,這種方式可以讓你...
    Simple_habits閱讀 578評論 0 9
  • Angular 簡介 什么是 AngularJS 一款非常優(yōu)秀的前端高級 JS 框架 最早由 Misko Heve...
    Looog閱讀 850評論 0 7
  • 前幾天,孩子情緒崩潰盒发,睡覺前大哭例嘱,說爸爸媽媽不喜歡她,自己不是親生的宁舰,讓爸爸媽媽把自己送走拼卵,隨便送給誰都行。再...
    寓見閱讀 274評論 0 2