AngularJs angular.forEach、angular.extend
angular.forEach
调用迭代器函数取每一项目标的集合,它可以是一个对象或数组。迭代器函数与迭代器(value、key)一起调用,其中值是一个对象属性或数组元素的值,而数组元素是对象属性的关键或数组元素索引。为函数指定一个可选的上下文。
格式:angular.forEach(obj,iterator,[context]);
obj:遍历的对象
iterator:迭代器
[content]: 对象为迭代器函数的上下文(this)
使用代码:
var arr = [{ name: "A", age: "1" }, { name: "B", age: "2" }, { name: "C", age: "3" }];
var _arr = [];
angular.forEach(arr, function (item, index) {
this.push(item.name);
}, _arr);
//_arr = ["A","B","C"]
推荐使用:
var arr = [{ name: "A", age: "1" }, { name: "B", age: "2" }, { name: "C", age: "3" }];
var _arr = [];
angular.forEach(arr, function (item, index) {
_arr.push(item.name);
});
//_arr = ["A","B","C"]
item指的是循环的集合中的对象,index是当前item的索引值。
在项目开发过程中,用到遍历是很正常且平常的事,那么angular也给我们提供了这个api -- angular.forEach。这个和jquery的的.each()方法相似,但貌似他比jquery的.each多了个参数。
angular.extend
复制src对象中的属性到dst对象中。你可以指定多个源对象。
格式:angular.extend(dst,src)
dst:目标对象
src:copy源对象(>=1)
使用代码:
var dst = { name: "Any" };
var src_one = { age: "18" };
var src_two = { sex:"male"};
angular.extend(dst,src_one,src_two);
//dst:{name: "Any", age: "18",sex:"male"} src_one={age:"18"} src_two = {sex:"male"}
这个方法主要是用对象给对象添加属性的,比如我们定义了个对象,然后需要在后面的代码对这个对象进行添加别的对象的属性作为自己的属性,然后这时候我们就需要用到angular.extend。而且这个方法还可以添加对个对象做为参数,给第目标对象添加属性,即方便又简单 -。-
本兽在一些封装好的插件的源码里看到这个方法也用到挺多,不过总觉得只有自己动手写代码用过了,才能更好的体会到这些方法的好处,仅仅是看下了解下就觉得自己理解了的这种,是不能真正的学到的,这两种学习的具体体会在用到代码的时候就知道了...建议大家都动手操作。
AngularJs angular.forEach、angular.extend的更多相关文章
- Angular - - angular.forEach、angular.extend
angular.forEach 调用迭代器函数取每一项目标的集合,它可以是一个对象或数组.迭代器函数与迭代器(value.key)一起调用,其中值是一个对象属性或数组元素的值,而数组元素是对象属性的关 ...
- angular.extend、angular.$watch、angular.bootstrap
1.angular.extend:依次将第二个参数及后续的参数的第一层属性(不管是简单属性还是对象)拷贝给第一个参数的第一层属性,即如果是对象,则是引用的是同一个对象,并返回第一个参数对象. 直接上代 ...
- AngularJs angular.injector、angular.module
angular.injector 创建一个injector对象, 调用injector对象的方法可用于获取服务以及依赖注入. 格式:angular.injector(modules); modules ...
- Angular - - angular.injector、angular.module
angular.injector 创建一个injector对象, 调用injector对象的方法可用于获取服务以及依赖注入. 格式:angular.injector(modules); modules ...
- angular.js 的angular.copy 、 angular.extend 、 angular.merge
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- AngularJs angular.uppercase、angular.lowercase、angular.fromJson、angular.toJson
angular.uppercase 将指定的字符串转换成大写 格式:angular.uppercase(string); string:被转换成大写的字符串. 使用代码: var str = &quo ...
- AngularJs angular.bind、angular.bootstrap、angular.copy
angular.bind 返回一个调用self的函数fn(self代表fn里的this).可以给fn提供参数args(*).这个功能也被称为局部操作,以区别功能. 格式:angular.bind(se ...
- Angular - - angular.uppercase、angular.lowercase、angular.fromJson、angular.toJson
angular.uppercase 将指定的字符串转换成大写 格式:angular.uppercase(string); string:被转换成大写的字符串. 使用代码: var str = &quo ...
- Angular - - angular.bind、angular.bootstrap、angular.copy
angular.bind 返回一个调用self的函数fn(self代表fn里的this).可以给fn提供参数args(*).这个功能也被称为局部操作,以区别功能. 格式:angular.bind(se ...
随机推荐
- 【AS3】Flash与后台数据交换四种方法整理
随着Flash Player 9的普及,AS3编程也越来越多了,所以这次重新整理AS3下几种与后台数据交换方法.1.URLLoader(URLStream)2.FlashRemoting3.XMLSo ...
- CUDA2.3-原理之任意长度的矢量求和与用事件来测量性能
__global__ void add( int *a, int *b, int *c) { <span style="white-space:pre"> </s ...
- 创业这三年¥.NET之尴尬处境
创业这三年#迈出第一步 创业这三年@各种奇遇 之前写的文章有兴趣的大家可以看看. 本来没有打算写这样一篇会遭人拍砖的文章,但是发现大家每天忙于编码,对市场环境..Net生态没有一个真实.多角度的认识, ...
- [BZOJ 1997][HNOI2010]Planar(2-SAT)
题目:http://www.lydsy.com:808/JudgeOnline/problem.php?id=1997 分析: 考虑每条边是在圈子里面还是圈子外面 所以就变成了2-SAT判定问题了= ...
- 反距离权重插值inverse distance weighting,IDW
反距离权重 (IDW) 插值显式假设:彼此距离较近的事物要比彼此距离较远的事物更相似.当为任何未测量的位置预测值时,反距离权重法会采用预测位置周围的测量值.与距离预测位置较远的测量值相比,距离预测位置 ...
- springmvc整合fastjson
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.sp ...
- C# Image Resizer
This program is used to resize images. using System; using System.Windows.Forms; using System.Drawin ...
- UEFI与MBR区别
EFI与MBR启动的区别 大硬盘和WIN8系统,让我们从传统的BIOS+MBR模式升级到UEFI+GPT模式,现在购买的主流电脑,都是预装WIN8系统,为了更好的支持2TB硬盘 ,更快速的启动win ...
- 让所有的浏览器都支持html5
<!--[if lt IE 9]> <script src="http://html5shiv.googlecode.com/svn/trunk/html5.js" ...
- Spring MVC 相关资料整理
来源于:http://www.cnblogs.com/ylhssn/p/4062757.html 1.概述 Spring MVC是一种基于Java实现MVC设计模式的请求驱动类型的轻量级Web框架,即 ...