码迷,mamicode.com
首页 > Web开发 > 详细

AngularJS中的Provider

时间:2014-08-08 13:00:56      阅读:221      评论:0      收藏:0      [点我收藏+]

标签:os   io   strong   数据   ar   cti   amp   new   

我们要从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,布布扣,bubuko.com

AngularJS中的Provider

标签:os   io   strong   数据   ar   cti   amp   new   

原文地址:http://my.oschina.net/tommyfok/blog/299231

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!