Angular工具方法學(xué)習(xí)
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會(huì)根據(jù)你的參數(shù)類型來(lái)決定調(diào)用call或apply,注意a和b後面?zhèn)鬟f的參數(shù),a是傳遞一個(gè)字符串,b是傳遞一個(gè)數(shù)組。
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); });
遍歷數(shù)組,對(duì)象也可以。value表示值,i表示索引,而this表示window對(duì)象。(在angular.forEach中我們傳遞了兩個(gè)參數(shù),1是遍歷的數(shù)組,2是匿名函數(shù))
var array = ['a','b','c']; var result = []; angular.forEach(array,function(value,i){ //遍歷查找數(shù)組時(shí),我們可能是為了獲取某些值 if(value === 'a'){ //如果數(shù)組中有'a'的話,就存入到result中,這里的this就代表result this.push(value); }; },result); console.log(result);
這個(gè)時(shí)候我們?nèi)齻€(gè)參數(shù),1是遍歷的數(shù)組,2是匿名函數(shù),3是結(jié)果集(當(dāng)傳遞了第三個(gè)參數(shù)的時(shí)候angular.forEach里面的this就會(huì)是一個(gè)空數(shù)組,否側(cè)為window對(duì)象)。
angular也為我們提供了原生的JSON.parse()以及JSON.stringify()方法。
var str = '{"name" : "xiecg","age" : "18"}'; var json = angular.fromJson(str); console.log(json);
將一個(gè)字符串的json解析成對(duì)象。
var str = {"name" : "xiecg","age" : "18"}; var json = angular.toJson(str,true); console.log(json);
將一個(gè)json解析成字符串(後面?zhèn)魅胍粋€(gè)true可換行,便于閱讀)
輔助方法
console.log( angular.identity(1,2,3) ); //返回第一個(gè)參數(shù) var flag = false; flag ? console.log('xxx') : angular.noop(); //空函數(shù),防止出錯(cuò)
大小寫轉(zhuǎn)換
console.log(angular.uppercase('hello')); //轉(zhuǎn)成大寫 console.log(angular.lowercase('HELLO')); //轉(zhuǎn)成小寫
判斷類型
var a = []; console.log(angular.isArray(a)); //true angular.isArray //判斷一個(gè)元素是否是數(shù)組 angular.isDate //判斷一個(gè)元素是否是時(shí)間對(duì)象 angular.isDefined //判斷一個(gè)元素是否存在 angular.isUndefined //判斷一個(gè)元素是否是undefined angular.isFunction //判斷一個(gè)元素是否是個(gè)函數(shù) angular.isNumber //判斷一個(gè)元素是否是數(shù)字 angular.isObject //判斷一個(gè)元素是否是對(duì)象 angular.isString //判斷一個(gè)元素是否是字符串 angular.isElement //判斷一個(gè)元素是否是html節(jié)點(diǎn)元素(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引入進(jìn)來(lái)方法會(huì)更多。
- js調(diào)試工具console.log()方法查看js代碼的執(zhí)行情況
- node.js版本管理工具n無(wú)效的原理和解決方法
- js實(shí)現(xiàn)帶關(guān)閉按鈕始終顯示在網(wǎng)頁(yè)最底部工具條的方法
- PHP小技巧之JS和CSS優(yōu)化工具M(jìn)inify的使用方法
- JavaScript1.6數(shù)組新特性介紹以及JQuery的幾個(gè)工具方法
- 將nodejs打包工具整合到鼠標(biāo)右鍵的方法
- js工具方法彈出蒙版
- 常用Extjs工具:Extjs.util.Format使用方法
- 一款js和css代碼壓縮工具[附JAVA環(huán)境配置方法]
- 解決http://16a.us/2.js之a(chǎn)rp欺騙的方法附專殺工具
相關(guān)文章
AngularJS基礎(chǔ) ng-disabled 指令詳解及簡(jiǎn)單示例
本文主要介紹AngularJS ng-disabled 指令,這里幫大家整理了ng-disabled指令的基礎(chǔ)指令,并附示例代碼,有需要的小伙伴參考下2016-08-08Angularjs Ng_repeat中實(shí)現(xiàn)復(fù)選框選中并顯示不同的樣式方法
今天小編就為大家分享一篇Angularjs Ng_repeat中實(shí)現(xiàn)復(fù)選框選中并顯示不同的樣式方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-09-09自定義Angular指令與jQuery實(shí)現(xiàn)的Bootstrap風(fēng)格數(shù)據(jù)雙向綁定的單選與多選下拉框
這篇文章主要介紹了自定義Angular指令與jQuery實(shí)現(xiàn)的Bootstrap風(fēng)格數(shù)據(jù)雙向綁定的單選與多選下拉框 的相關(guān)資料,需要的朋友可以參考下2015-12-12angular $watch 一個(gè)變量的變化(實(shí)例講解)
下面小編就為大家?guī)?lái)一篇angular $watch 一個(gè)變量的變化(實(shí)例講解)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-08-08AngularJS中重新加載當(dāng)前路由頁(yè)面的方法
下面小編就為大家分享一篇AngularJS中重新加載當(dāng)前路由頁(yè)面的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-03-03AngularJS 購(gòu)物車全選/取消全選功能的實(shí)現(xiàn)方法
下面小編就為大家?guī)?lái)一篇AngularJS 購(gòu)物車全選/取消全選功能的實(shí)現(xiàn)方法。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-08-08基于AngularJS實(shí)現(xiàn)的工資計(jì)算器實(shí)例
這篇文章主要介紹了基于AngularJS實(shí)現(xiàn)的工資計(jì)算器,結(jié)合具體實(shí)例形式分析了AngularJS數(shù)值計(jì)算相關(guān)操作技巧,需要的朋友可以參考下2017-06-06AngularJs導(dǎo)出數(shù)據(jù)到Excel的示例代碼
本篇文章主要介紹了AngularJs導(dǎo)出Excel的示例代碼,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-08-08angular動(dòng)態(tài)刪除ng-repaeat添加的dom節(jié)點(diǎn)的方法
本篇文章主要介紹了angular動(dòng)態(tài)刪除ng-repaeat添加的dom節(jié)點(diǎn)的方法,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2017-07-07