Angular入門

Angular 簡介

什么是 AngularJS

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

為什么使用 AngularJS

  • 更少的代碼,實現更強勁的功能
  • 將一些以前在后臺開發中使用的思想帶入前端開發
  • 帶領當前市面上的框架走向模式化或者架構化

AngularJS 的核心特性

  • MVC
  • 模塊化
  • 自動化雙向數據綁定
  • 指令系統

相關鏈接

Angular 上手

安裝 Angular

使用總結

運行官方文檔

CDN的優勢

Content Delivery Network

  • 節省自己服務器的帶寬壓力和流量

Angular 基礎概念

MVC 思想

什么是 MVC 思想

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

模塊(Module)

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

控制器(Controller)

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

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

視圖模型($scope)

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

表達式(Expression)

作用

把 數據綁定到html上

語法

寫在雙大括號內{{expression}}
包含文字,運算符,變量

與JavaScript表達式對比

單向數據綁定

雙向數據綁定

Angular 指令系統

ng-app指令


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

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

也可以通過模塊依賴關系,創建一個總模塊,依賴其他多個模塊

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

ng-bind指令

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

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

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

ng-model指令

用于綁定應用程序數據到html控制器(input select text)的值,可以將輸入的值與angularJS創建的變量綁定。

ng-repeat指令

ng-class指令

ng-show /ng-hide指令

ng-link/ng-src指令

自定義指令

過濾器filter

作用

常見的過濾器有

date過濾器

主要用于時間格式的轉換

limitTo過濾器
filter過濾器

filter過濾器會根據設置的檢索數據過濾未匹配到的數據內容,也可以通過設置檢索條件為一個對象,實現在指定屬性中檢索


通過自定義一個比較函數,在前臺為filter指定的第二個參數實現

json過濾器

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

自定義過濾器

實現自定義數據格式轉換

Form表單

Form表單-----驗證

Form表單-----驗證規則

服務(service)

創建服務

通過模塊的service方法創建一個服務

內置服務——$http

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

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 229,565評論 6 539
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 99,115評論 3 423
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 177,577評論 0 382
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,514評論 1 316
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,234評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,621評論 1 326
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,641評論 3 444
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,822評論 0 289
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,380評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 41,128評論 3 356
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,319評論 1 371
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,879評論 5 362
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,548評論 3 348
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,970評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,229評論 1 291
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,048評論 3 397
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,285評論 2 376

推薦閱讀更多精彩內容

  • angular簡介 angular是一個框架,諸多類庫的集合,以數據和邏輯為核心; MVC modal-view-...
    Rella7閱讀 585評論 0 2
  • AngularJS是什么?AngularJs(后面就簡稱ng了)是一個用于設計動態web應用的結構框架。首先,它是...
    200813閱讀 1,629評論 0 3
  • 簡介# AngularJS 是一個為動態WEB應用設計的結構框架,提供給大家一種新的開發應用方式,這種方式可以讓你...
    Simple_habits閱讀 582評論 0 9
  • Angular 簡介 什么是 AngularJS 一款非常優秀的前端高級 JS 框架 最早由 Misko Heve...
    Looog閱讀 853評論 0 7
  • 前幾天,孩子情緒崩潰,睡覺前大哭,說爸爸媽媽不喜歡她,自己不是親生的,讓爸爸媽媽把自己送走,隨便送給誰都行。再...
    寓見閱讀 280評論 0 2