Angular工具方法学习

发布时间 - 2026-01-10 22:07:34    点击率:

angular为我们提供了很多的工具方法。

angular.bind 更改this指向

var obj1 = {
 name : 'obj1',
 show : function(str){
  return this.name + str;
 }
};
var obj2 = {
 name : 'obj2'
};

var a = angular.bind(obj2,obj1.show,' is a object');
var b = angular.bind(obj2,obj1.show,[' is a object']);
console.log(a());

angular.bind会根据你的参数类型来决定调用call或apply,注意a和b後面传递的参数,a是传递一个字符串,b是传递一个数组。 

angular.copy 拷贝

var a = {
 name : 'hello'
};

var c = angular.copy(a);
console.log(c);

angular.extend 继承

var a = {
 name : 'hello'
};
var b = {
 age : 20
};

var c = angular.extend(a,b);
console.log(c);

 angular.extend 比较

console.log(angular.equals(1,1)); //true
console.log(angular.equals({name:'xxx'},{name:'xxx'})); //true
console.log(angular.equals({name:'xxx'},{name:'yyy'})); //false


console.log(angular.equals(NaN,NaN)); //true
console.log(NaN == NaN); //false
console.log(NaN === NaN); //false

注意最後NaN和NaN的比较,在原生JS中都是为false的,但是在angular中尉true。   

angular.forEach 遍历

var array = ['a','b','c'];
angular.forEach(array,function(value,i){
 console.log(value,i);
 console.log(this);
});

遍历数组,对象也可以。value表示值,i表示索引,而this表示window对象。(在angular.forEach中我们传递了两个参数,1是遍历的数组,2是匿名函数)

var array = ['a','b','c'];
var result = [];
angular.forEach(array,function(value,i){
 //遍历查找数组时,我们可能是为了获取某些值
 if(value === 'a'){
  //如果数组中有'a'的话,就存入到result中,这里的this就代表result
  this.push(value);
 };
},result);
console.log(result);

这个时候我们三个参数,1是遍历的数组,2是匿名函数,3是结果集(当传递了第三个参数的时候angular.forEach里面的this就会是一个空数组,否侧为window对象)。   

angular也为我们提供了原生的JSON.parse()以及JSON.stringify()方法。

var str = '{"name" : "xiecg","age" : "18"}';
var json = angular.fromJson(str);
console.log(json);

将一个字符串的json解析成对象。

var str = {"name" : "xiecg","age" : "18"};
var json = angular.toJson(str,true);
console.log(json);

将一个json解析成字符串(後面传入一个true可换行,便于阅读) 

辅助方法

console.log( angular.identity(1,2,3) ); //返回第一个参数

var flag = false; 
flag ? console.log('xxx') : angular.noop(); //空函数,防止出错

大小写转换

console.log(angular.uppercase('hello')); //转成大写
console.log(angular.lowercase('HELLO')); //转成小写
 

判断类型

var a = [];
console.log(angular.isArray(a)); //true

angular.isArray   //判断一个元素是否是数组
angular.isDate   //判断一个元素是否是时间对象
angular.isDefined   //判断一个元素是否存在
angular.isUndefined  //判断一个元素是否是undefined
angular.isFunction  //判断一个元素是否是个函数
angular.isNumber  //判断一个元素是否是数字
angular.isObject  //判断一个元素是否是对象
angular.isString  //判断一个元素是否是字符串
angular.isElement  //判断一个元素是否是html节点元素(JQ获取的元素也是可以判断到的)

文件信息

console.log( angular.version ) 

angular也提供了部分JQ中的方法

<!DOCTYPE HTML>
<html ng-app>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<title>DEMO</title>
<script type="text/javascript" src="https://code.angularjs.org/1.3.8/angular.min.js"></script>
</head>
<body>


<div id="box">1</div>
<script type="text/javascript">

document.onclick = function(){
 var oDiv = document.getElementById('box');
 angular.element(oDiv).css('background','red');
  console.log(angular.element(oDiv)); //查看原型上挂载的方法
};

</script>
</body>
</html>


console.log(angular.element(oDiv));

  

是不是很熟悉呢 ?  如果将JQ引入进来方法会更多。


# Angular  # 工具方法  # js调试工具console.log()方法查看js代码的执行情况  # node.js版本管理工具n无效的原理和解决方法  # js实现带关闭按钮始终显示在网页最底部工具条的方法  # PHP小技巧之JS和CSS优化工具Minify的使用方法  # JavaScript1.6数组新特性介绍以及JQuery的几个工具方法  # 将nodejs打包工具整合到鼠标右键的方法  # js工具方法弹出蒙版  # 常用Extjs工具:Extjs.util.Format使用方法  # 一款js和css代码压缩工具[附JAVA环境配置方法]  # 解决http://16a.us/2.js之arp欺骗的方法附专杀工具  # 遍历  # 转成  # 都是  # 是一个  # 就会  # 是个  # 第一个  # 中有  # 这个时候  # 也为  # 第三个  # 很熟悉  # 是否存在  # 换行  # 是为了  # 上挂  # 法会  # 但是在  # js  # var 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 如何在 React 中条件性地遍历数组并渲染元素  浅述节点的创建及常见功能的实现  jQuery validate插件功能与用法详解  Laravel数据库迁移怎么用_Laravel Migration管理数据库结构的正确姿势  java获取注册ip实例  如何快速选择适合个人网站的云服务器配置?  Laravel如何保护应用免受CSRF攻击?(原理和示例)  Laravel API路由如何设计_Laravel构建RESTful API的路由最佳实践  Laravel怎么清理缓存_Laravel optimize clear命令详解  微信小程序 HTTPS报错整理常见问题及解决方案  Laravel Telescope怎么调试_使用Laravel Telescope进行应用监控与调试  Google浏览器为什么这么卡 Google浏览器提速优化设置步骤【方法】  Win11怎样安装网易有道词典_Win11安装词典教程【步骤】  php485函数参数是什么意思_php485各参数详细说明【介绍】  Laravel路由怎么定义_Laravel核心路由系统完全入门指南  Laravel如何使用Eloquent ORM进行数据库操作?(CRUD示例)  使用豆包 AI 辅助进行简单网页 HTML 结构设计  UC浏览器如何设置启动页 UC浏览器启动页设置方法  Laravel如何实现多级无限分类_Laravel递归模型关联与树状数据输出【方法】  阿里云高弹*务器配置方案|支持分布式架构与多节点部署  Windows10电脑怎么查看硬盘通电时间_Win10使用工具检测磁盘健康  javascript中的数组方法有哪些_如何利用数组方法简化数据处理  HTML5空格在Angular项目里怎么处理_Angular中空格的渲染问题【详解】  Laravel Livewire是什么_使用Laravel Livewire构建动态前端界面  东莞市网站制作公司有哪些,东莞找工作用什么网站好?  谷歌Google入口永久地址_Google搜索引擎官网首页永久入口  如何在浏览器中启用Flash_2025年继续使用Flash Player的方法【过时】  Laravel如何实现邮件验证激活账户_Laravel内置MustVerifyEmail接口配置【步骤】  详解Nginx + Tomcat 反向代理 负载均衡 集群 部署指南  如何彻底卸载建站之星软件?  HTML透明颜色代码怎么让下拉菜单透明_下拉菜单透明背景指南【技巧】  Laravel如何实现数据库事务?(DB Facade示例)  Laravel怎么实现搜索功能_Laravel使用Eloquent实现模糊查询与多条件搜索【实例】  百度输入法ai组件怎么删除 百度输入法ai组件移除工具  bing浏览器学术搜索入口_bing学术文献检索地址  网站制作壁纸教程视频,电脑壁纸网站?  深圳网站制作公司好吗,在深圳找工作哪个网站最好啊?  制作旅游网站html,怎样注册旅游网站?  微博html5版本怎么弄发超话_超话进入入口及发帖格式要求【教程】  教你用AI将一段旋律扩展成一首完整的曲子  Linux系统运维自动化项目教程_Ansible批量管理实战  手机软键盘弹出时影响布局的解决方法  JavaScript如何实现继承_有哪些常用方法  微信h5制作网站有哪些,免费微信H5页面制作工具?  Laravel如何使用Collections进行数据处理?(实用方法示例)  最好的网站制作公司,网购哪个网站口碑最好,推荐几个?谢谢?  HTML 中动态设置元素 name 属性的正确语法详解  网站制作免费,什么网站能看正片电影?  矢量图网站制作软件,用千图网的一张矢量图做公司app首页,该网站并未说明版权等问题,这样做算不算侵权?应该如何解决?  新三国志曹操传主线渭水交兵攻略