全局函数和属性

判断对象类型的函数

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联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐