摘要:總結(jié)一下的核心對象上的方法,也幫助自己學(xué)習(xí)一下平時工作中沒怎么用到的方法,看能不能提高開發(fā)效率。我當(dāng)前使用的版本是也是目前最新的穩(wěn)定版本,不過在全局上,版本不同也沒什么區(qū)別。在引入了的情況下,使用方法和幾乎一樣,相當(dāng)于一個語法糖。
總結(jié)一下AngularJS的核心對象angular上的方法,也幫助自己學(xué)習(xí)一下平時工作中沒怎么用到的方法,看能不能提高開發(fā)效率。我當(dāng)前使用的Angularjs版本是1.5.5也是目前最新的穩(wěn)定版本,不過在全局API上,版本不同也沒什么區(qū)別。
AngularJS 全局 API列表element
bootstrap
copy
extend
merge
equals
forEach
noop
bind
toJson
fromJson
identity
isUndefined
isDefined
isString
isFunction
isObject
isNumber
isElement
isArray
version
isDate
lowercase
uppercase
module
angular.forEachforEach(obj, iterator)
遍歷obj(可以是對象,也可以是數(shù)組)對象,并依次調(diào)用iterator(value, key, obj)函數(shù)。
其中iterator函數(shù),接收的三個參數(shù)分別為
value: 對象的屬性(數(shù)組元素)
key: 對象的屬性名(數(shù)組的索引)
obj: 數(shù)組(對象)本身
例子:
var list = ["小明", "小毛", "小周", "小蕾"]; angular.forEach(list, function (val, key) { console.log(key + "號同學(xué):" + val); }) var obj = { name: "吳登廣", age: "21", title: "worker" } angular.forEach(obj, function (val, key) { console.log(key + ":" + val); })
效果:
angular.module這個方法大家應(yīng)該都很熟悉了
module(name, requires),name為模塊名,requires(可選)為依賴的模塊,當(dāng)有依賴的模塊數(shù)組的時候,表示注冊一個模塊,沒有時為引用一個模塊。
例子:
angular.module("main", []); console.log(angular.module("main"));
效果:
angular.element這個方法是用來操作DOM的,一般在指令里面使用。
在引入了jquery的情況下,使用方法和jquery幾乎一樣,相當(dāng)于一個語法糖。
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節(jié)點和jquery的有點不太一樣,這里可以參考一篇文章。
angular.bootstrap這個函數(shù)不太常用。如果你不想使用ng-app指令來啟動angular應(yīng)用的話,可以用angular.bootstrap()來啟動
angular.element(document).ready(function() { angular.bootstrap(document, []); });
需要依賴的模塊數(shù)組做為參數(shù)。
angular.toJson其實就是調(diào)用JSON.stringify()方法將一個對象或數(shù)組,格式化為JSON字符串。
angular.fromJSON就是調(diào)用JSON.parse()方法將一個JSON字符串轉(zhuǎn)換為一個對象
例子:
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)
深復(fù)制一個對象或者數(shù)組,這是一個非常實用的方法,熟悉js的人都應(yīng)該知道,js中 = 操作符,實際上復(fù)制的是指針,所以前后兩個變量指向的還是內(nèi)存中的同一個對象,所以我們在其中一個變量上操作該對象時,對另外一個變量也會生效,有時候我們并不希望出現(xiàn)這種情況。然后angular.copy方法就是深復(fù)制,會在內(nèi)存中再生成一個對象,兩個變量就可以獨立,相互不產(chǎn)生影響。
接收一個必須參數(shù)source,和一個可選參數(shù)destination
var user1 = { name: "wudengguang", age: 21, title: "worker" } var user2 = user1; var user3 = angular.copy(user1); var user4 = {}; // 注意這個user4必須是一個對象或者數(shù)組 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字段之后,淺復(fù)制的user2受到了影響,而深復(fù)制的user3和user4沒有受到影響
angular.extendextend(destination, src1, src2...)
這個方法是用來擴(kuò)展對象的,destination為要擴(kuò)展的對象,會將后面的對象的屬性全部復(fù)制到destination中,不過是淺復(fù)制
var user1 = { name: "Jax2000", age: 21, } var user2 = { age: 22, skill: {} } var dst = {}; angular.extend(dst, user1, user2); console.log(dst); console.log(dst.skill === user2.skill);angular. merge
這個方法和extend方法是一樣的,也是用來擴(kuò)展目標(biāo)對象的,不過用的是深復(fù)制
var user1 = { name: "Jax2000", age: 21, } var user2 = { age: 22, skill: {} } var dst = {}; angular.merge(dst, user1, user2); console.log(dst); console.log(dst.skill === user2.skill);
merge和extend常用于獲取存儲在服務(wù)端的用戶設(shè)置,然后需要和本地的結(jié)合的這一類案例。如果對于copy,extend,merge的區(qū)別還不是很了解的話,可以看這篇文章。
angular.equalsequals(o1, o2)
見文知意,判斷兩個對象或者值是否相等,其中對象只要是屬性都想同即可。
var user1 = { name: "Jax2000", age: 21, } var user2 = { age: 21, name: "Jax2000" } console.log(angular.equals(user1, user2));
結(jié)果是true
angular.noop這個方法直接看源代碼就知道了
function noop() {}
我也不是很清楚,這個東西干嘛的,可能是有些函數(shù)需要回調(diào)函數(shù)做為參數(shù),在沒有時調(diào)用的吧,官方的文檔案例:
function foo(callback) { var result = calculateResult(); (callback || angular.noop)(result); }angular.bind
這個方法就是返回一個有特定作用域的函數(shù)對象
angular.bind(self, fn, args)
self: 函數(shù)的作用域
fn: 需要改變作用域的函數(shù)
args: 需要傳遞給該函數(shù)的參數(shù)數(shù)組
var user1 = { name: "Jax", age: 21, } var user2 = { age: 21, name: "Scarlett" } function sayName(user) { console.log(this.name, user.name); } var _sayName = angular.bind(user1, sayName, user2); _sayName();
效果就是打印出了 Jax Scarlett
angular.identity該函數(shù)也很簡單,就是返回這個函數(shù)接收到的第一個參數(shù)
例子也用官方的例子好了
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 21angular.isUndefined
判斷傳入的參數(shù)是否為undefined
console.log(angular.isUndefined(undefined)); // true console.log(angular.isUndefined(null)); // falseangular.isDefined
判斷傳入進(jìn)來的參數(shù)是否不是undefined
console.log(angular.isDefined(undefined)); // false console.log(angular.isDefined(null)); // trueangular.isString
判斷傳入進(jìn)來的參數(shù)是否為字符串
console.log(angular.isString("123")); // true console.log(angular.isString(123)); // falseangular.isNumber
判斷傳進(jìn)來的參數(shù)是否為number類型
console.log(angular.isNumber("123")); // false console.log(angular.isNumber(123)); // trueangular.isFunction
判斷傳遞進(jìn)來的參數(shù)是否為一個函數(shù)
console.log(angular.isFunction(fn)); // true console.log(angular.isFunction(fn())); // falseangular.isObject
判斷傳遞進(jìn)來的參數(shù)是否為對象(null 除外)
console.log(angular.isObject({})); // true console.log(angular.isObject(null)); // false console.log(angular.isObject(123)); // falseangular.isArray
就是Array.isArray
判斷傳入進(jìn)來的參數(shù)是否為數(shù)組
console.log(angular.isArray([])); // true console.log(angular.isArray(null)); // falseangular.isElement
判斷傳遞進(jìn)來的參數(shù)是否為一個DOM節(jié)點(被jquery擴(kuò)展過的也可)
var body = angular.element(document.getElementsByTagName("body")[0]); console.log(angular.isElement(body)); // trueangular.isDate
判斷傳遞進(jìn)來的對象是否為Date類型
console.log(angular.isDate(new Date())); // trueangular.lowercase
將一個字符串轉(zhuǎn)換為小寫
angular.upercase將一個字符串轉(zhuǎn)換為小寫
console.log(angular.lowercase("ABCD")); // abcd console.log(angular.uppercase("abcd")); // ABCDangular.version
這是一個屬性,返回angular的版本
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/86316.html
摘要:總結(jié)一下的核心對象上的方法,也幫助自己學(xué)習(xí)一下平時工作中沒怎么用到的方法,看能不能提高開發(fā)效率。我當(dāng)前使用的版本是也是目前最新的穩(wěn)定版本,不過在全局上,版本不同也沒什么區(qū)別。在引入了的情況下,使用方法和幾乎一樣,相當(dāng)于一個語法糖。 總結(jié)一下AngularJS的核心對象angular上的方法,也幫助自己學(xué)習(xí)一下平時工作中沒怎么用到的方法,看能不能提高開發(fā)效率。我當(dāng)前使用的Angularj...
摘要:入門一前言目前來說相對于現(xiàn)在流行的高版本以及來說實屬是老套的前端框架了,當(dāng)然這都不重要,沒有完美的框架,只有不斷優(yōu)化的代碼。通過使用我們稱為指令的結(jié)構(gòu),讓瀏覽器能夠識別新的語法。使用作為輸入,而不是字符串,是區(qū)別于其它的框架的最大原因。 AngularJs 入門(一) 前言 AngularJs目前來說相對于現(xiàn)在流行的高版本ng2、ng4,以及Vue2.0、React來說實屬是老套的前...
流行框架 簡介 angularjs是一款非常優(yōu)秀的前端高級JS框架,由谷歌團(tuán)隊開發(fā)維護(hù),能夠快速構(gòu)建單頁web應(yīng)用,化繁為簡 無論是angularjs還是jQuery都是用原生JS封裝的 庫:對代碼進(jìn)行封裝,調(diào)用封裝的方法,簡化操作 傳統(tǒng)方式是用get方式獲取元素,然后點方法 jQuery庫實現(xiàn)了對獲取方式的封裝,對方法的封裝 框架:提供代碼書寫規(guī)則,按照規(guī)則去寫代碼,框架會幫我們實現(xiàn)響應(yīng)的功能...
閱讀 3274·2023-04-25 18:03
閱讀 1143·2021-11-15 11:38
閱讀 5522·2021-10-25 09:45
閱讀 840·2021-09-24 09:48
閱讀 2272·2021-09-22 15:34
閱讀 1734·2019-08-30 15:44
閱讀 2675·2019-08-30 13:12
閱讀 604·2019-08-29 16:05