我们要从Dependency Injection(依赖注入)的对象中获取的数据或者功能,都是Injector给的。
Injector会创建两种对象:服务 或 专用对象
Injector要知道如何创建这些对象,就要用户自行去“注册”。
有五种注册方法:
Provider, Value, Factory, Service 和 Constant
构建Service
最强大的是Providor,其他方法只不过是Provider在某些条件下的简化版。
构建specialized objects
specialized objects包括:
controllers, directives, filters 和 animations
一般用各自的API去创建,比如:
module.controller(‘AppleController‘, function () { // some code });
另外Provider也能够构建Filter(使得这个filter变得可配置):
// 用Provider构造filter angular.module(‘Tommy‘, []).provider(‘matchMediaFilter‘, function () { var service = { // 这里是可配置的数据 queries: { xs: ‘screen and (max-width: 480px)‘, sm: ‘screen and (min-width: 481px) and (max-width: 768px)‘, md: ‘screen and (min-width: 769px) and (max-width: 992px)‘, lg: ‘screen and (min-width: 993px) and (max-width: 1200px)‘, xl: ‘screen and (min-width: 1201px)‘ }, // 这个$get function是AngularJS规定必须的 $get: function ( $window ) { return function (unchanged, query, newVal) { var mq = service.queries[query]; return ($window.matchMedia && $window.matchMedia(mq).matches) ? newVal : unchanged; }; } }; return service; });
AngularJS中的Provider
时间: 2024-10-14 04:15:05