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>