angular:框架萄唇,庫架谎!-----必須放在服務(wù)器下
mvc的庫耿芹!
? ? ? ? ?m ? ? model數(shù)據(jù)
? ? ? ? ?v ? ? ?view視圖
? ? ? ? ?c ? ? ?controller控制器
------------------------------------------------------------------------------------
基本功能:
angular.bind(this指向,函數(shù)名,參數(shù)...);
angular.copy(克隆誰,克隆到哪里);
angular.element(元素)//有點像小jq
angular.equals(a,b)? 比較倆個數(shù)的大小蕊唐!
? ? ? ? ? ? ? ? forEach? 循環(huán)
? ? ? ? ? ? ? ? isArray? 判斷是否是數(shù)組
? ? ? ? ? ? ? ?isDate? ? 判斷是否是時間對象
? ? ? ? ? ? ? ? lowercase? 轉(zhuǎn)小寫
? ? ? ? ? ? ? ? ?module? ? 模塊化開發(fā)腊徙!
展示數(shù)據(jù)的方法: ??
? ? ? ? ? ? ? ? ?1.{{a}}-----數(shù)據(jù)
? ? ? ? ? ? ? ? ?2.ng-bind="a";
ng-app 開啟angular應(yīng)用模式? 管轄范圍简十!
*一個頁面里面,只能出現(xiàn)一次撬腾!
*建議大家把它加在html標(biāo)簽里螟蝙!
---------------------------------------------------------------------------------
指令(directive):擴展html語法*屬性!
*屬性民傻!------<p ng-bind="a">顯示a的數(shù)據(jù)</p>
*標(biāo)簽胰默!-------<ng-bind>顯示數(shù)據(jù)</ng-bind>
咋現(xiàn)在寫過的:
ng-model="" 定義一個數(shù)據(jù)
ng-bind=""? 綁定數(shù)據(jù)展示
ng-app
ng-init="" 初始數(shù)據(jù)
ng-show/hide="ture/false"
ng-click="" 點擊
ng-mouseover=""
ng-repaet=""? 循環(huán)
-----------------------------------------------------------------------
angular的特色:
雙向數(shù)據(jù)綁定、 依賴注入漓踢!
依賴注入:函數(shù)參數(shù)固定的牵署!和順序沒有關(guān)系!
angular控制器:
1.版本1.2.x之前
? ? ? ? ? function show($scope){
? ? ? ? ? ? ? //里面定義的數(shù)據(jù)
? ? ? ? ? }
? ? ? ? ? <div ng-controller="show"></div>
2.版本版本1.2.x之后
? ? ? ? ? ?先創(chuàng)建一個模塊:
? ? ? ? ? ? ? ? ?var ?app=angular.module('app',[]);
? ? ? ? ? ? ? ? ?**要把app放在ng-app="app";
? ? ? ? ? 在模塊里面創(chuàng)建控制器:
? ? ? ? ? ? ? ? app.controller(控制器名稱,函數(shù))
? ? ? ? ? 調(diào)用:
? ? ? ? ? ? ? ? <div ng-controller="show"></div>
----------------------------------------------------------------------------------------------
給大家看一個列子:
<div ng-controller="show">
? ? ?{{a}}
? ? ?<div ng-controller="aaa">
? ? ? ? ? {{a}}
? ? ?</div>
</div>
結(jié)論:
控制器喧半,它可以繼承奴迅!,繼承關(guān)系基于dom關(guān)系(但是數(shù)據(jù)名要一樣);
--------------------------------------------------------------------------------
父級和子級之間的取數(shù)據(jù)挺据?
所謂繼承取具,可以認(rèn)為是子級從父級取數(shù)據(jù)!
***父級從子級取數(shù)據(jù)(子級可以給父級傳遞數(shù)據(jù))
方法:
? ? ? ? ? ?1.發(fā)送
? ? ? ? ? ? ? ? ? $scope.$emit('data',$scope.asd);//把數(shù)據(jù)發(fā)送給(父級)的控制器
? ? ? ? ? ? ? ? ? $scope.$broadcast('new-data',data);
? ? ? ? ? ? ? ? ? //把數(shù)據(jù)發(fā)送給(子級)的控制器
? ? ? ? ? ?2.接受
? ? ? ? ? ? $scope.$on('data',function(event,data){//接受發(fā)送來的數(shù)據(jù)
? ? ? ? ? ? ? ? ? ? ? //console.log(data);
? ? ? ? ? ? ? ? ? ? ?$scope.a=data;
? ? ? ? ? ? })
-----------------------------------------------------------------------------------
angular小問題:
? ? ? ? ? ? ?數(shù)據(jù)改了,視圖沒有改過來吴菠!
? ? ? ? ? ? ?$scope.$apply()-----------------臟檢查(強制更新數(shù)據(jù))
------------------------------------------------------------------------------------
過濾器:filter
應(yīng)用在模板里面的!
? ? ? ? ? ? ? ? ? 寫法:{{sum()|過濾器的名稱}}
? ? ? ? ? ? ? ? ? ? ? ? ?{{sum()|currency}}
? ? ? ? ? ? ? ? ? ? ? ? ? currency---貨幣單位浩村!
? ? ? ? ? ? ? ? ? ? ? ? ?***默認(rèn)是美元做葵!
? ? ? ? ? ? ? ? ? 在空濾器里面可以寫參數(shù):
? ? ? ? ? ? ? ? ? ? ? ? ? ?{{sum()|currency:'¥'}}
? ? ? ? ? ? ? ? ? ? ? ? ? ? 這是人民幣!
? ? ? ? ? ? ? ? ? 時間:
? ? ? ? ? ? ? ? ? ? ? ? ?{{a|date}} ---默認(rèn)是國外的時間心墅!
? ? ? ? ? ? ? ? ? ? ? ? ?{{data|filter:'關(guān)鍵字'}}
? ? ? ? ? ? ? ? ? ? ? ? ? ----查找關(guān)鍵字酿矢!
? ? ? ? ? ? ? ? ? ? ? ? ? ?{{arr|limitTo}}
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?1.默認(rèn)什么都沒有
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?2.限制位數(shù){{arr|limitTo:2}}
作用:一般來說
{{a|lowercase}}--轉(zhuǎn)小
{{a|uppercase}}--轉(zhuǎn)大
數(shù)字轉(zhuǎn)化(千分位)
12345
12345.00
12,345.00
1,212,345.00
number
--------------------------------------------
上面都是自帶的指令榨乎,下面我們來自己寫一個
自定義一個指令!
app.directive('ngRed',function(){
? ? ? ? ? ? ? ? ?return function(scope,element,attr){
? ? ? ? ? ? ? ? ? ? ? ? ? ? ?element.css('background','red');
? ? ? ? ? ? ? ? ? }
})
自定義指令-深入
return {
? ? ? ? ? ? ? ? ? ? ? restrict:'ECMA',--包含用法的地方
? ? ? ? ? ? ? ? ? ? ? template:'<h1>我是h1</h1>'瘫筐,---模板
? ? ? ? ? ? ? ? ? ? ? replace:true蜜暑,---嚴(yán)格替換,直接把標(biāo)簽替換過來策肝!
? ? ? ? ? ? ? ? ? ? ? templateUrl:'a.html'肛捍,模板地址
? ? ? ? ? ? ? ? ? ? ? link:function(scope,element,attr){
? ? ? ? ? ? ? ? ? ? ? ? ? ? element.css('background','red');
? ? ? ? ? ? ? ? ? ? ? }
}
link里面是唯一可以操作dom的地方!
E element--元素
C css? 樣式
M? comment? 注釋
A? attr? 屬性