使用Angular
- angular是一個框架(框架包含類庫)
- 類庫:函數(shù)的集合。jquery.
- angular是做什么的枫振?
- 解決原生html不足氨淌。增加一些指令。
- 什么是指令村视?
- 給原生的html標(biāo)簽添加了一些新的屬性官套,達到自己想要的效果 。
- jquery能不能與angular共存蚁孔。(可以)
- jquery用來做特效做DOM操作奶赔,以dom驅(qū)動。angular是以數(shù)據(jù)為驅(qū)動杠氢。
- MVC:
模型(Model)
視圖(View)
控制器(Controller) - 定義模塊
<script>
//1.創(chuàng)建模塊(model的第二個參數(shù)寫和不寫完全不同站刑。)
// 當(dāng)寫上時:代表是創(chuàng)建一個模塊。不寫:獲取指定的模塊修然。
//模塊相當(dāng)于一個餐廳
var app = angular.module("app",[]);
//2.創(chuàng)建控制器
//控制器相當(dāng)于服務(wù)員
//$scope相當(dāng)于餐廳里的廚房(廚房可以放東西,做菜等)(一個功能质况,服務(wù))
app.controller("XmgController",["$scope", function ($scope) {
$scope.name ="xigua";
$scope.box =["apple","banana"];
$scope.doFood = function () {
alert("zuofan")
}
}])
//3.綁定模塊愕宋。 讓anguar在當(dāng)前頁當(dāng)中支持范圍。
//4.綁定控制器
</script>
指令
ng-app 指定應(yīng)用根元素结榄,至少有一個元素指定了此屬性中贝。
ng-controller 指定控制器
ng-show控制元素是否顯示,true顯示臼朗、false不顯示
ng-hide控制元素是否隱藏邻寿,true隱藏、false不隱藏
ng-if控制元素是否“存在”视哑,true存在绣否、false不存在
ng-src增強圖片路徑
ng-href增強地址
ng-class控制類名
ng-include引入模板
ng-disabled表單禁用
ng-readonly表單只讀
ng-checked單/復(fù)選框表單選中
ng-selected下拉框表單選中
- ng-show/hide和ng-if的區(qū)別
- ng-show/hide 控制標(biāo)簽是否顯示
- ng-if 控制器標(biāo)簽是否存在
- 直接使用src加載圖片,會帶來什么問題挡毅?
- 由于加載是先把Html頁面加載完成之后蒜撮,再回頭來加載angular。所以只是用src會發(fā)送兩次請求,所以第一次請求會出現(xiàn)404錯誤段磨。
自定義指令
-
AngularJS允許根據(jù)實際業(yè)務(wù)需要自定義指令取逾,通過angular全局對象下的directive方法實現(xiàn)。
數(shù)據(jù)綁定(MVVM)
- 數(shù)據(jù)單向綁定(MV):把模型的數(shù)據(jù)展示到視圖當(dāng)中苹支。
- 綁定方式有三種:
- 1.使用插值語法:{{模型屬性}} 加載時砾隅,->會造成閃爍≌郏可以使用ng-cloak來避免閃爍
- 2.使用ng-bind:ng-bind=“模型屬性” ->不會造成閃爍, 只能綁定一個屬性
- 3.使用ng-bind-template=“{{模型屬性}},{{模型屬性}}”->可以綁定多值, 不會千萬閃爍
- 在數(shù)據(jù)綁定過程當(dāng)中使用插值語法綁定數(shù)據(jù)時晴埂,會造成閃爍。請求是什么原因策幼?如何解決邑时?
- 原因:由于加載是先把Html頁面加載完成之后,再回頭來加載angular特姐。所以會發(fā)送兩次請求晶丘。
- 解決:
1.在標(biāo)簽當(dāng)中添加指令 ng-cloak
2.定義樣式【ng-cload】 內(nèi)容為display:none
3.解析html時會把指令的標(biāo)簽給隱藏。
4.在解析angular時會把ng-cloak樣式改為顯示唐含。 -
數(shù)據(jù)雙向綁定(VM):
視圖的數(shù)據(jù)可以綁定到模型當(dāng)中浅浮。
模型的數(shù)據(jù)可以綁定到視圖當(dāng)中。
過濾器
- 什么事過濾器:對數(shù)據(jù)進行格式化處理捷枯。
- 過濾器的本質(zhì):就是一個方法
- 把管道符左邊的內(nèi)容當(dāng)作參數(shù)傳給右邊
abc | currency
- 內(nèi)置9大過濾器
1滚秩、currency:將數(shù)值格式化為貨幣格式
2、date:日期格式化淮捆,年(y)郁油、月(M)、日(d)攀痊、星期(EEEE/EEE)桐腌、時(H/h)、分(m)苟径、秒(s)案站、毫秒(.sss),也可以組合到一起使用棘街。
3蟆盐、filter:在給定數(shù)組中選擇滿足條件的一個子集,并返回一個新數(shù)組遭殉,其條件可以是一個字符串石挂、對象、函數(shù)
4险污、json:將Javascrip對象轉(zhuǎn)成JSON字符串誊稚。
5、limitTo:取出字符串或數(shù)組的前(正數(shù))幾位或后(負數(shù))幾位
6、lowercase:將文本轉(zhuǎn)換成小寫格式
7里伯、uppercase:將文本轉(zhuǎn)換成大寫格式
8城瞎、number:數(shù)字格式化,可控制小位位數(shù)
9疾瓮、orderBy:對數(shù)組進行排序脖镀,第2個參數(shù)可控制方向 -
如何自定義過濾器
依賴注入
-
行內(nèi)式注入
以數(shù)組形式明確聲明依賴,數(shù)組元素都是包含依賴名稱的字符串狼电,數(shù)組最后一個元素是依賴注入的目標(biāo)函數(shù)蜒灰。推薦使用行內(nèi)式注入.