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的版本 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |