Angular API 核心组件之 Function

1  angular.lowercase  将给定得字符串转换成小写的形式 

angular.lowercase(string)

 

2  angular.uppercase  将给定得字符串转换成大写形式

angular.uppercase(string)

 

3 angular.forEach(obj, iterator ,[context])  :

为对象或者数组中的每一项执行迭代器 function函数,function函数有两个参数value,key。value对象中每一个属性的值,或者是数组中的元素。而key则是属性名或者是数组的下标index。而可选参数context是function执行环境。

 
var values={name:'misko','gender':'male'};
   var log=[];
   angular.forEach(values,function(value,key){
this.push(key + ':' + value)
},log) // log 是function执行的上下文  指定了this的值。

 

4 angular.extend (dst , src)

 将源对象src中的所有属性全部拷贝到目标对象 ,可以指定多个src对象
<!DOCTYPE html>
<html ng-app="copyExample">
<head lang="en">
    <meta charset="UTF-8">
    <title></title>
    <script type="text/javascript" src="js/angular.js"></script>
</head>
<body ng-controller="myCopy">
    <div>{{dest}}</div>
<script>
    angular.module('copyExample', [])
            .controller('myCopy', ['$scope', function($scope) {
                var source = {"name":"aviva","age":"26","gender":"female"};
                var source2 = {"job":"coder","address":"bj"};
                $scope.dest = {"name":"David","age":"28","gender":"male"};
                angular.extend($scope.dest,source,source2);
                console.log($scope.dest);
            }]);
</script>
</body>
</html>

 

5 angular .noop

这个函数不执行任何操作。例子:
function foo(callback){
var result = calculateResult();
(callback || angular.noop)(result);
}

 

6 angular .identity

 这个函数返回他的第一个参数,例子:
function transformer(transformationFn,value) {
    return (transformationFn || angular.indentity)(value)
}

 

7 angular.isUndefined

  确定参数是否是未定义undefined
  angular.isUndefined(value);

8 angular.isDefined  

确定给定的参数是否是已经定义了 
angular.isDefined(value)

9 angular.isObject

确定一个给定的参数是否是对象,与Javascript中的typeof不同,null不被认为是object对象,注意:js中数组也是对象。
angular.isObject(value)

10 angular.isString

确定给定的参数是否是字符串
angular.isString(value)

11 angular.isNumber

确定给定的参数是否是数字
angular.isNumber(value)

12 angular.isDate  

确定给定的参数是否是日期
angular.isDate(value)

13 angular.isArray  

确定给定的参数是否是数组
angular.isArray(value)

14 angular.isFunction

确定给定的参数是否是函数
angular .isFunction(value)

15 angular.isElement

确定给定的参数是一个 DOM元素(或者是包装过的 jQuery元素)
angular.isElement(value)

16 angular.copy(source,[destination])  

深层复制source ,source必须是对象Object 或者数组 array
  • 如果destination(目标)没有指定,会创建一个对象或者数组
    <script type="text/javascript">
            angular.module('myCopy',[])
                    .controller('copyCtrl',function(){
                        var source = [1,2,3,4];
                        var destination = angular.copy(source);
                        console.log(destination);
                    })
    
        </script>
    

     

  • 如果destination(目标)指定了,它所有的属性(对象)或者元素(数组)都会被删除,然后把source中的属性或者元素拷贝进去。
    angular.module('myCopy',[])
                    .controller('copyCtrl',function(){
                        var source = [1,2,3,4];
                        var destination = [4,5,6,7];
                        angular.copy(source,destination);
                        console.log(destination);//  [1,2,3,4]
                    })
    

     

  • 如果source不是对象或者数组,将会返回source本身
angular.module('myCopy',[])
                .controller('copyCtrl',function(){
                    var source = "this is a string";
                    var destination = [4,5,6,7];
                    angular.copy(source,destination);
                    console.log(destination); //["t", "h", "i", "s", " ", "i", "s", " ", "a", " ", "s", "t", "r", "i", "n", "g"]
                })

 

  • 如果source和destination完全相同,会抛出一个异常。

17 angular.equals  

确定给定的两个对象或者两个参数是否相同,参数可以是对象,数组,正则表达式。
传递的两个参数只要符合以下中的一项,就会被认为是相同的
  • 通过 “===”比较两个对象或者参数
  • 传递的对象或者值是相通的类型,并且他们所有的属性的值通过angualar.equals 比较都相等
  • 传递的两个参数都是NAN(在js中 NAN与NAN比较会返回false,但是在这里我们认为是相等的)
  • 传递的两个参数都代表相同的正则表达式(在js中 /abc/==/abc/返回false,但是我们认为两个正 则表达式文本内容匹配时,就是相等的)

18 angular.bind(self,fn,args)  

  返回一个函数,它的执行环境时self(fn中的this=self),args是可选参数
angular.module('bindExample',[])
            .controller('bindCtrl',function(){
                var f = angular.bind({a: 'xx'},
                        function(){
                            console.log(this.a);
                        }
                );
                f();//'xx'
            })

 

19 angular.toJson

将input序列化成json格式的字符串,带有$前缀的属性将会被剥夺,因为angular在内部使用这个符号

angular.toJson(obj,[pretty])  pretty=true/false   r如果pretty为true,那么输出的json格式会包含换行和空格

20 angular.fromJson(json)  

将json格式反序列化

21 angular.bootstrap

利用这个函数可以手动的触发angular 应用程序

<script type="text/javascript">
        angular.module('app',[]).controller('bootstrapCtrl',function(){
            console.log('123');
        });
        angular.bootstrap(document.documentElement,['app']);
    </script>

 22 angular.element 

将 DOM元素或者 html 字符串包装成 jQuery 元素

如果引用了jQuery,angular.element  就是jQuery函数得一个别名,如果没有引用jQuery,angular.element则代表了jQuery的一个子集,叫做 “jQuery Lite” 或者 “jqLite”;

<script type="text/javascript">
    angular.module('app',[])
            .controller('eleCtrl',function(){
                //console.log(12);
                var divs=angular.element(document.getElementsByTagName('div')).eq(0).addClass('red');
                console.log(divs);
            });
    angular.bootstrap(document.documentElement,['app']);
</script>

 jqLite 只提供以下的方法:

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
posted @ 2014-09-11 22:23  丁家小花花  阅读(788)  评论(0编辑  收藏  举报