2017-5-19 Angular.js 學(xué)習(xí)筆記

Angular.js 使用步驟

//AngularJs 提供了一個全局對象 angular
//1.創(chuàng)建一個模塊,第一個參數(shù)為模塊名稱,第二個參數(shù)為依賴模塊
var app = angular.module('app',[]);
//2.創(chuàng)建控制器,作為連接 model 和 view 的橋梁,第一個參數(shù)為控制氣啊名稱,第二個參數(shù)為依賴的服務(wù)
app.controller('xxxController',['$scope',function($scope){

}])
//3.綁定模塊 
//4.綁定控制器
<body ng-app='app' ng-controller='xxxController'>
</body>
  • 一個頁面可以綁定多個模塊,但是模塊之間是不能嵌套的
  • 通常一個 html 里面值對應(yīng)一個模塊

Angular 指令概念

  • HTML 在構(gòu)建應(yīng)用時存在諸多不足之處,AngularJS 通過擴展一系列的 HTML 屬性或標(biāo)簽來彌補這些缺陷
  • 所謂指令就是 AngularJs 自定義的 HTML 屬性或標(biāo)簽,這些指令都是以 ng- 作為前綴的
  • 內(nèi)置指令: angular 開始為 html 內(nèi)置好了一些特定功能的屬性或者標(biāo)簽,當(dāng)解析到 ng 代碼時,會回頭到 html 當(dāng)中解析自己的指令

常用指令

ng-app 指定應(yīng)用模塊,至少一個
ng-controller 指定控制器
ng-show 控制元素是否顯示,布爾類型
ng-hide 控制元素是否隱藏,布爾類型
ng-if 控制元素是否存在,布爾類型,弱為 false,在操作臺也看不到此標(biāo)簽
ng-src 增強通篇路徑,用普通 src 雖然會正確顯示但是控制臺會報錯,原因是 html 文件是從上到下渲染的,渲染的時候看不到此路徑,而之后解析的時候又能看到,所以會正確顯示,但是也會報錯
ng-herf 增強地址
ng-class 控制類名
使用方式: ng-class='{red:true}'
red為類名,true 為是否添加類名
ng-include 引入模版,html 中直接引入別的文件: ng-include="'header.html'",因為參數(shù)是引用路徑所以要加引號
ng-disabled 表單禁用,input 的輸入框禁用
ng-readonly 表單只讀,input 輸入框內(nèi)容不可修改
ng-checked  單、復(fù)選框表單選中
ng-selected 下拉框表單選中
  • ng-switch 選擇指令
  • ng-repeat 遍歷指令
//配合 ng-switch-when 使用
<ul ng-switch='value' ng-repeat='(index,value) in array'>
      <li ng-switch-when="css">{{value}}</li>
</ul>

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

  • AngularJS 是以數(shù)據(jù)作為驅(qū)動的 mvc 框架,所有模型里的數(shù)據(jù)經(jīng)由控制器展示到視圖中
  • 數(shù)據(jù)綁定指的就是將模型中的數(shù)據(jù)與響應(yīng)的視圖驚醒關(guān)聯(lián)
  • AngularJS 當(dāng)中的數(shù)據(jù)綁定分為
  • 1.數(shù)據(jù)單向綁定
    單向數(shù)據(jù)綁定是指將模型數(shù)據(jù),按著寫好的視圖模版生成 HTML 標(biāo)簽,然后追加到 DOM 樹中顯示
  • 2.數(shù)據(jù)雙向綁定
    雙向綁定則可以實現(xiàn)模型數(shù)據(jù)和視圖模版的雙向傳遞

單向數(shù)據(jù)綁定的幾種方式

  • 1.插值語法{{屬性}}:會閃爍 可以綁定多個值
  • 2.ng-bind = '屬性':不會閃爍 只能綁定一個值
  • 3.ng-bind-template:不會閃爍,可以綁定多個值
    1. ng-cloak :防止閃爍
  • 需要在 style 標(biāo)簽內(nèi)添加 [ng-cloak]選擇說行有 ng-cloak 的元素[ng-cloak]{display:none}

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

<body ng-app="app" ng-controller="skController">

<!--視圖數(shù)據(jù)綁定模型屬性-->
<input type="text" ng-model="name">

<!--模型數(shù)據(jù)修改視圖-->
<p>{{name}}</p>

</body>

<script src="angular.js"></script>
<script>

    //雙向綁定: 模型和視圖的雙向傳遞,
    //模型數(shù)據(jù)綁定到視圖
    //視圖數(shù)據(jù)可以綁定到模型中
    //想要實現(xiàn)視圖數(shù)據(jù)綁定到模型, 必須借助表單
    //在表單中使用 ng-model='屬性名稱', input標(biāo)簽中綁定屬性

    //1.創(chuàng)建模塊
    var app = angular.module('app', []);
    //2.創(chuàng)建控制器
    app.controller('skController', ['$scope',function ($scope) {
        $scope.name = 'sk666';
    }]);

    //3.綁定模塊 ng-app='app'
    //4.綁定控制器

</script>

MVVM

  • MVVM 是 Model-View-ViewModel 的縮寫
    MVVM 最早由微軟提出來,它借鑒了桌面應(yīng)用程序的 MVC 思想,在前端頁面中,把 Model 用 純 JavaScript 對象表示, View 負責(zé)顯示,兩者做到了最大限度的分離
    把 Model 和 View 關(guān)聯(lián)起來的就是 ViewModel。ViewModel 負責(zé)把 Model 的數(shù)據(jù)同步到 View 顯示出來,還負責(zé)把 View 的修改同步回 Model。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 1. 介紹 AngularJS是一款由Google公司開發(fā)維護的前端MVC框架,其克服了HTML在構(gòu)建應(yīng)用上的諸多...
    崔皓翔閱讀 909評論 0 5
  • AngularJS AngularJS概述 介紹 簡稱:ng Angular是一個MVC框架 其他前端框架: Vu...
    我愛開發(fā)閱讀 2,404評論 0 8
  • AngularJS是什么?AngularJs(后面就簡稱ng了)是一個用于設(shè)計動態(tài)web應(yīng)用的結(jié)構(gòu)框架。首先,它是...
    200813閱讀 1,780評論 0 3
  • 基礎(chǔ)ng屬性指令 布爾屬性 布爾屬性代表一個true或false值。當(dāng)這個屬性出現(xiàn)時,這個屬性的值就是true(無...
    oWSQo閱讀 1,349評論 0 0
  • 一瞬間我怒氣全消。偉大的人多么容易承認自己的錯誤! 上師提供的是永世的庇護與指導(dǎo),但許多徒弟同樣貪婪地要求得到我執(zhí)...
    蘇醒love閱讀 427評論 0 0

友情鏈接更多精彩內(nèi)容