国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

AngularJS的核心對象angular上的方法全面解析(AngularJS全局API)

RdouTyping / 618人閱讀

摘要:總結(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.forEach

forEach(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.copy

copy(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.extend

extend(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.equals

equals(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 21
angular.isUndefined

判斷傳入的參數(shù)是否為undefined

console.log(angular.isUndefined(undefined)); // true
console.log(angular.isUndefined(null)); // false
angular.isDefined

判斷傳入進(jìn)來的參數(shù)是否不是undefined

console.log(angular.isDefined(undefined)); // false
console.log(angular.isDefined(null)); // true
angular.isString

判斷傳入進(jìn)來的參數(shù)是否為字符串

console.log(angular.isString("123")); // true
console.log(angular.isString(123)); // false
angular.isNumber

判斷傳進(jìn)來的參數(shù)是否為number類型

console.log(angular.isNumber("123")); // false
console.log(angular.isNumber(123)); // true
angular.isFunction

判斷傳遞進(jìn)來的參數(shù)是否為一個函數(shù)

console.log(angular.isFunction(fn)); // true
console.log(angular.isFunction(fn())); // false
angular.isObject

判斷傳遞進(jìn)來的參數(shù)是否為對象(null 除外)

console.log(angular.isObject({})); // true
console.log(angular.isObject(null)); // false
console.log(angular.isObject(123)); // false
angular.isArray

就是Array.isArray
判斷傳入進(jìn)來的參數(shù)是否為數(shù)組

console.log(angular.isArray([])); // true
console.log(angular.isArray(null)); // false
angular.isElement

判斷傳遞進(jìn)來的參數(shù)是否為一個DOM節(jié)點(被jquery擴(kuò)展過的也可)

var body = angular.element(document.getElementsByTagName("body")[0]);

console.log(angular.isElement(body)); // true
angular.isDate

判斷傳遞進(jìn)來的對象是否為Date類型

console.log(angular.isDate(new Date())); // true
angular.lowercase

將一個字符串轉(zhuǎn)換為小寫

angular.upercase

將一個字符串轉(zhuǎn)換為小寫

console.log(angular.lowercase("ABCD")); // abcd
console.log(angular.uppercase("abcd")); // ABCD
angular.version

這是一個屬性,返回angular的版本

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/86316.html

相關(guān)文章

  • AngularJS核心對象angular方法全面解析(AngularJS全局API)

    摘要:總結(jié)一下的核心對象上的方法,也幫助自己學(xué)習(xí)一下平時工作中沒怎么用到的方法,看能不能提高開發(fā)效率。我當(dāng)前使用的版本是也是目前最新的穩(wěn)定版本,不過在全局上,版本不同也沒什么區(qū)別。在引入了的情況下,使用方法和幾乎一樣,相當(dāng)于一個語法糖。 總結(jié)一下AngularJS的核心對象angular上的方法,也幫助自己學(xué)習(xí)一下平時工作中沒怎么用到的方法,看能不能提高開發(fā)效率。我當(dāng)前使用的Angularj...

    pubdreamcc 評論0 收藏0
  • AngularJs 入門(一)--前言

    摘要:入門一前言目前來說相對于現(xiàn)在流行的高版本以及來說實屬是老套的前端框架了,當(dāng)然這都不重要,沒有完美的框架,只有不斷優(yōu)化的代碼。通過使用我們稱為指令的結(jié)構(gòu),讓瀏覽器能夠識別新的語法。使用作為輸入,而不是字符串,是區(qū)別于其它的框架的最大原因。 AngularJs 入門(一) 前言 AngularJs目前來說相對于現(xiàn)在流行的高版本ng2、ng4,以及Vue2.0、React來說實屬是老套的前...

    wenyiweb 評論0 收藏0
  • AngularJS簡述

    流行框架 簡介 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)的功能...

    Jason 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<