全局函数和属性

判断对象类型的函数

API描述
angular.isArray(value)如果引用的是数组返回 true
angular.isDate(value)如果引用的是日期返回 true
angular.isDefined(value)如果引用的已定义返回 true
angular.isElement(value)如果引用的是 DOM 元素返回 true
angular.isFunction(value)如果引用的是函数返回 true
angular.isNumber(value)如果引用的是数字返回 true
angular.isObject(value)如果引用的是对象返回 true
angular.isString(value)如果引用的是字符串返回 true
angular.isUndefined(value)如果引用的未定义返回 true

数据转换函数

API描述
angular.lowercase(string)将字符串转换为小写
angular.uppercase(string)将字符串转换为大写
angular.copy(source, [destination])数组或对象深度拷贝
angular.extend(dst, src)通过从src对象复制所有属性到dst来扩展目标对象dst。你可以指定多个src对象。
angular.forEach(obj, iterator, [context])对象或数组的迭代函数
angular.equals(o1,o2)如果两个对象相等返回 true
angular.fromJson(json)反序列化 JSON 字符串
angular.toJson(obj,[pretty])序列化 JSON 字符串。pretty如果设为true,JSON输出会包含换行和空格。

angular.equals()注意点:

  • 如果两个对象或值满足下列任一种情况就认为是相等的:

  • 两个对象或值通过了===比较。

  • 两个对象或值是相同类型,并且它们所有属性都用angular.equals比较后相等。
  • 两个值为NaN (在JavaScript中, NaN == NaN结果为false。但是我们这里认定两个NaN是相等的)。
  • 两个值为相同的正则表达式(在JavaScript中, /abc/ == /abc/结果为false。但是我们这里认定两个正则表达式的文本形式相同时为相等)。

  • 在属性比较时,Function类型的属性和名称以$开始的属性会被忽略,不做比较。

  • Scope和DOMWindow对象只能使用===比较。

angular.copy()示例:

<div ng-controller="ExampleController">
<form novalidate class="simple-form">
Name: <input Type="text" ng-model="user.name" /><br />
E-mail: <input Type="email" ng-model="user.email" /><br />
Gender: <input Type="radio" ng-model="user.gender" value="male" />male
<input Type="radio" ng-model="user.gender" value="female" />female<br />
<button ng-click="reset()">RESET</button>
<button ng-click="update(user)">SAVE</button>
</form>
<pre>form = {{user | json}}</pre>
<pre>master = {{master | json}}</pre>
</div>

<script>
angular.module('copyExample')
.controller('ExampleController', ['$scope', Function($scope) {
$scope.master= {};

$scope.update = Function(user) {
// Example with 1 argument
$scope.master= angular.copy(user);
};

$scope.reset = Function() {
// Example with 2 arguments
angular.copy($scope.master, $scope.user);
};

$scope.reset();
}]);
</script>

其他

API描述
angular.bootstrap((element, [modules], [config])手动启动 AngularJS,返回这个应用新创建的注入器。
angular.element(element)封装一个原始DOM元素或HTML字符串为一个 jQuery 元素。
angular.module(name, [requires], [configFn])创建,注册或检索 AngularJS 模块
angular.injector(modules);创建一个注入函数,用于通过依赖注入的方式获取服务
angular.bind(self, fn, args)返回将调用函数fn绑定到self的函数 (self成为fn的this )。你可以提供可选的 args预绑定到函数。此功能也被称为 partial application(偏函数应用),区别于 function currying(函数加里化)。
angular.identity一个函数返回它的第一个参数。这个函数在使用函数风格写代码时很有用。
angular.noop一个执行空操作的函数。这个函数在使用函数风格写代码时很有用。
function transformer(transformationFn, value) {
return (transformationFn || angular.identity)(value);
};

function foo(callback) {
var result = calculateResult();
(callback || angular.noop)(result);
}
var self = { name: 'boyi' };
//示例1--带参数
var f = angular.bind(self, //绑定对象,作为函数的上下文
//被绑定的函数
function (age) {
alert(this.name + ' is ' + age + ' !');
},
//绑定的参数,可省略
'15'
);
f();//调用绑定之后的function
// boyi is 15 !
//示例2--不带参数
var m = angular.bind(self, //绑定对象,作为函数的上下文
//被绑定的函数
function (age) {
alert(this.name + ' is ' + age + ' !');
}
//省略参数
);
m(3);//调用传参的函数
// boyi is 3 !

angular.version

angular.version是包含当前AngularJS版本信息的对象。这个对象有以下属性:

  • full – {string} – 完整的版本字符串,如”0.9.18”。
  • major – {number} – 主版本号,如”0”。
  • minor – {number} – 次版本号,如”9”。
  • dot – {number} – 小版本号,如”18”.
  • codeName – {string} – 发行的代码名称,如”jiggling-armfat”。
<body ng-app="myApp" ng-controller="myCtrl">
{{ version }}
<script>
var app = angular.module('myApp', []);
app.controller('myCtrl', function($scope, $rootScope) {
$scope.version = angular.version;
});
</script>
</body>
Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐