Angular的方法不在於多,在於是否能夠用得着。下面會詳細講解angular中的一些方法。
如果原生的JS寫在head里經常用到 window.onload ,意思是頁面加載完成后執行,在angular中有不同的寫法 ---- angular.element(document).ready()
angular.bind() 可以調用一些函數;
function show(){
alert(this+"調用了show")
}
var c=angular.bind("c",show);
c();
angular.lowercase() 與 angular.uppercase() ------可以轉小寫、大寫。
angular.forEach() 循環一組數組。也是可以寫第三個參數,則可以添加到新數組中。
var arr=['apple','banana','orange','pear'];
var arr1=[];
angular.forEach(arr,function(value,key){
console.log(value+":"+key); //value是數組的數值,key則是數值的下標;
console.log(arr1); //新的數組
},arr1)
嵌套中的父級向子級發送數據 ----$broadcast() 第一個是自定義名,第二個是要發送的數值 子級向父級用的是 $emit() 方法一樣。
父級 $scope.$broadcast('newdata',$scope.c1)
子級 $scope.$on('newdata',function(event,data){
$scope.c2=data+1
})
定時器不同 ----$interval() $timeout 清除定時器用$interval.cancel()。
config() 先執行 run() 后執行 執行順序不同。
angular熟練這些方法。
//擴展知識
過濾器也是可以寫在js中。----number保留一位
var app=angular.module('atr',[]);
app.run(['$rootScope','$filter',function($rootScope,$filter){
$rootScope.a=12;
$rootScope.name=$filter('number')(1234567890.1234,1)
}])
合並兩個數組。------extend() 參數是需要合並的數組。
angular.toJson() -----object格式轉換成string格式。
angular.fromJson() -----string格式的數據轉換成object
ng-app這個指令比較特殊,一個頁面只能出現一個作用域。
我還是有辦法可以創建多個作用域的。
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<script src="../../angular/angular.min.js"></script>
<script>
var app1=angular.module('mk1',[]);
var app2=angular.module('mk2',[]);
app1.controller('text1',function($scope){
$scope.a=12
});
app2.controller('text2',function($scope){
$scope.b=20
});
var div=document.getElementsByTagName('div');
angular.element(document).on('click',function(){
angular.bootstrap(div[0],['mk1']);
angular.bootstrap(div[1],['mk2']);
})
</script>
</head>
<body>
<div ng-controller="text1">
{{a}}
</div>
<div ng-controller="text2">
{{b}}
</div>
</body>
</html>
