AngularJS API Docs - Global APIs - 整理

AngularJS API Docs - Global APIs

此文章的 API 參考 Version 1.4.7.html

angular.forEach: 迭代函數

  • 用法: angular.forEach(obj, iterator, [context])angularjs

  • 解釋: obj 爲迭代對象, 能夠是一個 object, 也能夠是 array, 根據 obj 的類型, 迭代函數iterator的參數理解稍微不一樣(詳見示例), contenxt 可選參數, 是iterator
    執行的上下文.json

  • 注意:bootstrap

    • angular.forEach不迭代繼承的屬性, 由於內部使用了hasOwnProperty方法來過濾api

    • Array.prototype.forEach不一樣, 當 obj 爲不可迭代對象時, 好比 undefined, null, number, angular.forEach返回 obj 自己, iterator並不會執行數據結構

  • 示例:app

var person = {name: "Jerry", gender: "male"};
var result = [];
angular.forEach(person, function (value, key, obj) {
    this.push(key + ": " + value);
}, result);
$log.debug(result); // ["name: Jerry", "gender: male"]

var friends = ["Tom", "Jerry", "Donald"];
angular.forEach(friends, function (value, index, arr) {
    this.push(index + ": " + value);
}, result);
$log.debug(result); // ["name: Jerry", "gender: male", "0: Tom", "1: Jerry", "2: Donald"]

$log.debug(angular.forEach(undefined)); // undefined
$log.debug(angular.forEach(null)); // null
$log.debug(angular.forEach(1, function (){ $log.debug("in iterator")})); // 1

angular.extend

  • 功能: 擴展函數, 將src(s)的可枚舉屬性複製到dst中;ide

  • 用法: angular.extend(dst, src...);函數

  • 注意oop

    • 若是不想保留原有的 obj 不被改變, 可使用{}做爲第一個參數: var obj = angular.extend({}, obj1, obj2)

    • angular.extend不支持遞歸merge(deep copy), 若是須要須要使用angular.merge

  • 示例

var obj1 = {name: "Jerry"};
var obj2 = {gender: "male"};
var obj3 = {phone: "13312345678"};
angular.extend(obj1, obj2, obj3);

$log.debug(obj1); // {gender: "male", name: "Jerry", phone:"13312345678"}

angular.merge

  • 功能: 擴展函數, 深度拷貝

  • 用法: angular.extend(dst, src...);angular.extend使用方法一致

  • 注意: 在1.3.0版本中無此功能

angular.noop

  • 功能: 啥都不幹的函數

  • 用法:

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

angular.identity

  • 功能: 返回第一個參數

  • 用法:

function transformer(transformationFn, value) {
  return (transformationFn || angular.identity)(value);
};

angular.copy

  • 用法: angular.copy(source, [dest])

  • 詳解: !!此 API 的實踐效果與官方的有效出入.

    • 首先清空 dest(若是dest是一個object, array, 不然不修改),

    • 而後生成 source 的一個深拷貝, 並將深拷貝複製到 dest 中(若是 dest 是一個object, array且 source 與 dest 數據結構相同, 不然 dest 不作修改)

    • 返回 dest

  • 注意

    • 若是沒有destination參數, 那麼source的深拷貝將被建立, 且返回

    • 若是 source 和 destination 相同, 那麼拋出一個錯誤

angular.equals(o1, o2)

  • 功能: 比較o1, o2是否相等, 包括: obj, arr, primitives, regExp,

  • 詳解:

    • 知足如下條件 angular.equals 返回 true

    • 知足 ===

    • obj 屬性或者 array 的元素遞歸知足 angular.equals == true

    • angular.equals(NaN, NaN) === true

    • 字面量相等的 regExp 相等

    • 帶 $ 的屬性和 function 將會被忽略, 可是隻比較兩個匿名函數會返回 false

    • scope, DOM 只能按照 === 去判斷

angular.bind(self, fn, args)

var greet = function (greeting, punctuation) {
  return greeting + ' ' + this.user + punctuation;
};
var object = { 'user': 'fred' };
var bound = angular.bind(greet, object, 'hi');
bound('!'); // → 'hi fred!'

angular.toJson

  • 用法: angular.toJson(obj, [pretty])

  • 功能: 將 obj 按照 json 的格式輸出

  • 解釋: 若是 pretty 設置, pretty=true <=> pretty=2, 即縮進的空格個數

angular.bootstrap

  • 功能: 手動啓動一個 angular 的應用, 此乃高級內容, 暫作簡要記錄, 還須深刻理解

  • 用法: angular.bootstrap(element, [modules], [config])

  • 示例:

<!doctype html>
<html>
<body>
<div ng-controller="WelcomeController">
    {{greeting}}
</div>

<script src="angular.js"></script>
<script>
    var app = angular.module('demo', [])
            .controller('WelcomeController', function ($scope) {
                $scope.greeting = 'Welcome!';
            });

    setInterval(function () {
        angular.bootstrap(document, ['demo']);
    }, 2000);
</script>
</body>
</html>

angular.element: 包裹 DOM 元素做爲一個 jQuery(jqLite) 的元素

  • 詳解: angular 中的 element 都是 jQuery(jqLite)元素; jqLite 的使用將會在另外的文章中給出介紹

angular.module

  • 用法: angular.module(name, [requires], [configFn])

  • 功能: 用來建立, 註冊, 得到 angular 的 module

  • 注意:

    • 傳入一個參數爲獲取, 傳入多個參數爲建立

其餘

  • angular.lowercase: 字符串轉小寫

  • angular.uppercase: 字符串轉大寫

  • angular.isUndefined

  • angular.isDefined

  • angular.isObject

    • 功能: 判斷參數是不是一個 object 可是不是 null, 注意 array 是 object

  • angular.isString

  • angular.isNumber

  • angular.isDate

  • angular.isArray

  • angular.isFunction

  • angular.isElement

    • 功能: 判斷參數是不是一個 DOM 元素或者一個 jQuery 包裹的元素

  • angular.reloadWithDebugInfo: 重啓應用, 打開 debug

  • angular.injector, 高級內容, 將來深刻理解

  • angular.fromJson

相關文章
相關標籤/搜索