AngularJS的核心对象angular上的方法全面解析(AngularJS全局API)
| 
                         总结一下AngularJS的核心对象angular上的方法,也帮助自己学习一下平时工作中没怎么用到的方法,看能不能提高开发效率。我当前使用的Angularjs版本是1.5.5也是目前最新的稳定版本,不过在全局API上,版本不同也没什么区别。 AngularJS 全局 API列表
 angular.forEachforEach(obj,iterator) 
 例子: var list = ['小明','小毛','小周','小蕾'];
angular.forEach(list,function (val,key) {
    console.log(key + '号同学:' + val);
})
var obj = {
    name: '吴登广',age: '21',title: 'worker'
}
angular.forEach(obj,key) {
    console.log(key + ':' + val);
}) 
效果: angular.module这个方法大家应该都很熟悉了 angular.module('main',[]);
console.log(angular.module('main')); 
效果: angular.element这个方法是用来操作DOM的,一般在指令里面使用。 var ele = angular.element('h1');
console.log(ele.html()); 
在没有引入jquery的情况下,使用的其实是jqLite(angular自己封装的类似于jquery的一个东西),使用方法也类似,只不过不支持一些jquery的选择器。 var ele = angular.element(document.getElementsByTagName('h1')[0]);
console.log(ele.html()); 
至于用jqLite获取到的封装过后的DOM节点和jquery的有点不太一样,这里可以参考一篇文章。 angular.bootstrap这个函数不太常用。如果你不想使用ng-app指令来启动angular应用的话,可以用angular.bootstrap()来启动 angular.element(document).ready(function() {
    angular.bootstrap(document,[]);
}); 
需要依赖的模块数组做为参数。 angular.toJson其实就是调用JSON.stringify()方法将一个对象或数组,格式化为JSON字符串。 angular.fromJSON就是调用JSON.parse()方法将一个JSON字符串转换为一个对象 var user = {
    name: 'Jax2000',age: 21,title: 'worker'
}
user = angular.toJson(user)
console.log(user);
user = angular.fromJson(user);
console.log(user); 
效果: angular.copycopy(source,destination) var user1 = {
    name: 'wudengguang',title: 'worker'
}
var user2 = user1;
var user3 = angular.copy(user1);
var user4 = {};
// 注意这个user4必须是一个对象或者数组
angular.copy(user1,user4);
user1.name = 'liulei';
console.log('user1:' + user1.name);
console.log('user2:' + user2.name);
console.log('user3:' + user3.name);
console.log('user4:' + user4.name); 
效果: 可以看到改变user1的name字段之后,浅复制的user2受到了影响,而深复制的user3和user4没有受到影响 angular.extendextend(destination,src1,src2...) var user1 = {
    name: 'Jax2000',}
var user2 = {
    age: 22,skill: {}
}
var dst = {};
angular.extend(dst,user1,user2);
console.log(dst);
console.log(dst.skill === user2.skill); 
 angular. merge这个方法和extend方法是一样的,也是用来扩展目标对象的,不过用的是深复制 var user1 = {
    name: 'Jax2000',skill: {}
}
var dst = {};
angular.merge(dst,user2);
console.log(dst);
console.log(dst.skill === user2.skill); 
 merge和extend常用于获取存储在服务端的用户设置,然后需要和本地的结合的这一类案例。如果对于copy,extend,merge的区别还不是很了解的话,可以看这篇文章。 angular.equalsequals(o1,o2) var user1 = {
    name: 'Jax2000',}
var user2 = {
    age: 21,name: 'Jax2000'
}
console.log(angular.equals(user1,user2)); 
结果是true angular.noop这个方法直接看源代码就知道了 function noop() {} 
我也不是很清楚,这个东西干嘛的,可能是有些函数需要回调函数做为参数,在没有时调用的吧,官方的文档案例: function foo(callback) {
    var result = calculateResult();
    (callback || angular.noop)(result);
} 
angular.bind这个方法就是返回一个有特定作用域的函数对象 var user1 = {
    name: 'Jax',name: 'Scarlett'
}
function sayName(user) {
    console.log(this.name,user.name);
}
 var _sayName = angular.bind(user1,sayName,user2);
_sayName(); 
效果就是打印出了 Jax Scarlett angular.identity该函数也很简单,就是返回这个函数接收到的第一个参数 function getResult(fn,input) {
    return (fn || angular.identity)(input);
};
getResult(function(n) { return n * 2; },21);   // returns 42
getResult(null,21);                            // returns 21
getResult(undefined,21);                       // returns 21 
angular.isUndefined判断传入的参数是否为undefined console.log(angular.isUndefined(undefined)); // true console.log(angular.isUndefined(null)); // false angular.isDefined判断传入进来的参数是否不是undefined console.log(angular.isDefined(undefined)); // false console.log(angular.isDefined(null)); // true angular.isString判断传入进来的参数是否为字符串 console.log(angular.isString('123')); // true
console.log(angular.isString(123)); // false 
angular.isNumber判断传进来的参数是否为number类型 console.log(angular.isNumber('123')); // false
console.log(angular.isNumber(123)); // true 
angular.isFunction判断传递进来的参数是否为一个函数 console.log(angular.isFunction(fn)); // true console.log(angular.isFunction(fn())); // false angular.isObject判断传递进来的参数是否为对象(null 除外) console.log(angular.isObject({})); // true
console.log(angular.isObject(null)); // false
console.log(angular.isObject(123)); // false 
angular.isArray就是Array.isArray console.log(angular.isArray([])); // true console.log(angular.isArray(null)); // false angular.isElement判断传递进来的参数是否为一个DOM节点(被jquery扩展过的也可) var body = angular.element(document.getElementsByTagName('body')[0]);
console.log(angular.isElement(body)); // true 
angular.isDate判断传递进来的对象是否为Date类型 console.log(angular.isDate(new Date())); // true angular.lowercase将一个字符串转换为小写 angular.upercase将一个字符串转换为小写 console.log(angular.lowercase('ABCD')); // abcd
console.log(angular.uppercase('abcd')); // ABCD 
angular.version这是一个属性,返回angular的版本 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!  | 
                  
