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

資訊專欄INFORMATION COLUMN

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

pubdreamcc / 988人閱讀

摘要:總結一下的核心對象上的方法,也幫助自己學習一下平時工作中沒怎么用到的方法,看能不能提高開發效率。我當前使用的版本是也是目前最新的穩定版本,不過在全局上,版本不同也沒什么區別。在引入了的情況下,使用方法和幾乎一樣,相當于一個語法糖。

總結一下AngularJS的核心對象angular上的方法,也幫助自己學習一下平時工作中沒怎么用到的方法,看能不能提高開發效率。我當前使用的Angularjs版本是1.5.5也是目前最新的穩定版本,不過在全局API上,版本不同也沒什么區別。

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(可以是對象,也可以是數組)對象,并依次調用iterator(value, key, obj)函數。
其中iterator函數,接收的三個參數分別為

value: 對象的屬性(數組元素)

key: 對象的屬性名(數組的索引)

obj: 數組(對象)本身

例子:

var list = ["小明", "小毛", "小周", "小蕾"];
angular.forEach(list, function (val, key) {
    console.log(key + "號同學:" + val);
})

var obj = {
    name: "吳登廣",
    age: "21",
    title: "worker"
}

angular.forEach(obj, function (val, key) {
    console.log(key + ":" + val);
})

效果:

angular.module

這個方法大家應該都很熟悉了
module(name, requires),name為模塊名,requires(可選)為依賴的模塊,當有依賴的模塊數組的時候,表示注冊一個模塊,沒有時為引用一個模塊。
例子:

angular.module("main", []);

console.log(angular.module("main"));

效果:

angular.element

這個方法是用來操作DOM的,一般在指令里面使用。
在引入了jquery的情況下,使用方法和jquery幾乎一樣,相當于一個語法糖。

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節點和jquery的有點不太一樣,這里可以參考一篇文章。

angular.bootstrap

這個函數不太常用。如果你不想使用ng-app指令來啟動angular應用的話,可以用angular.bootstrap()來啟動

angular.element(document).ready(function() {
    angular.bootstrap(document, []);
});

需要依賴的模塊數組做為參數。

angular.toJson

其實就是調用JSON.stringify()方法將一個對象或數組,格式化為JSON字符串。

angular.fromJSON

就是調用JSON.parse()方法將一個JSON字符串轉換為一個對象
例子:

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)
深復制一個對象或者數組,這是一個非常實用的方法,熟悉js的人都應該知道,js中 = 操作符,實際上復制的是指針,所以前后兩個變量指向的還是內存中的同一個對象,所以我們在其中一個變量上操作該對象時,對另外一個變量也會生效,有時候我們并不希望出現這種情況。然后angular.copy方法就是深復制,會在內存中再生成一個對象,兩個變量就可以獨立,相互不產生影響。
接收一個必須參數source,和一個可選參數destination

var user1 = {
    name: "wudengguang",
    age: 21,
    title: "worker"
}
var user2 = user1;
var user3 = angular.copy(user1);
var user4 = {};

// 注意這個user4必須是一個對象或者數組
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字段之后,淺復制的user2受到了影響,而深復制的user3和user4沒有受到影響

angular.extend

extend(destination, src1, src2...)
這個方法是用來擴展對象的,destination為要擴展的對象,會將后面的對象的屬性全部復制到destination中,不過是淺復制

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方法是一樣的,也是用來擴展目標對象的,不過用的是深復制

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常用于獲取存儲在服務端的用戶設置,然后需要和本地的結合的這一類案例。如果對于copy,extend,merge的區別還不是很了解的話,可以看這篇文章。

angular.equals

equals(o1, o2)
見文知意,判斷兩個對象或者值是否相等,其中對象只要是屬性都想同即可。

var user1 = {
    name: "Jax2000",
    age: 21,
}

var user2 = {
    age: 21,
    name: "Jax2000"
}

console.log(angular.equals(user1, user2));

結果是true

angular.noop

這個方法直接看源代碼就知道了

function noop() {}

我也不是很清楚,這個東西干嘛的,可能是有些函數需要回調函數做為參數,在沒有時調用的吧,官方的文檔案例:

function foo(callback) {
    var result = calculateResult();
    (callback || angular.noop)(result);
}
angular.bind

這個方法就是返回一個有特定作用域的函數對象
angular.bind(self, fn, args)
self: 函數的作用域
fn: 需要改變作用域的函數
args: 需要傳遞給該函數的參數數組

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

該函數也很簡單,就是返回這個函數接收到的第一個參數
例子也用官方的例子好了

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

判斷傳入的參數是否為undefined

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

判斷傳入進來的參數是否不是undefined

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

判斷傳入進來的參數是否為字符串

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

判斷傳進來的參數是否為number類型

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

判斷傳遞進來的參數是否為一個函數

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

判斷傳遞進來的參數是否為對象(null 除外)

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

就是Array.isArray
判斷傳入進來的參數是否為數組

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

判斷傳遞進來的參數是否為一個DOM節點(被jquery擴展過的也可)

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

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

判斷傳遞進來的對象是否為Date類型

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

將一個字符串轉換為小寫

angular.upercase

將一個字符串轉換為小寫

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

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

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/49862.html

相關文章

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

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

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

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

    wenyiweb 評論0 收藏0
  • AngularJS簡述

    流行框架 簡介 angularjs是一款非常優秀的前端高級JS框架,由谷歌團隊開發維護,能夠快速構建單頁web應用,化繁為簡 無論是angularjs還是jQuery都是用原生JS封裝的 庫:對代碼進行封裝,調用封裝的方法,簡化操作 傳統方式是用get方式獲取元素,然后點方法 jQuery庫實現了對獲取方式的封裝,對方法的封裝 框架:提供代碼書寫規則,按照規則去寫代碼,框架會幫我們實現響應的功能...

    Jason 評論0 收藏0

發表評論

0條評論

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