zoukankan      html  css  js  c++  java
  • 简话Angular 07 Angular config-run-service-factory-provider-constant-value

    1.功能细分简解

    config Angular module模块的加载阶段-应用在此时还没有启动
    run Angular应用是第一个被运行的方法,相当于其它语言中的main()方法
    factory factory() 方法是创建和配置服务的最快捷方式,单例对象,在应用的生命周期内只会被调用一次
    注入factory,相当于注入factory定义时的函数调用入口。
    用 Factory 就是创建一个对象,为它添加属性,然后把这个对象返回出来。你把 service 传进 controller 之后,在 controller 里这个对象里的属性就可以通过 factory 使用了
    service service() 可以注册一个支持构造函数的服务,它允许我们为服务对象注册一个构造 函数
    注入service,相当于注入service定义时的function实例
    Service 是用"new"关键字实例化的。因此,你应该给"this"添加属性,然后 service 返回"this"。你把 service 传进 controller 之后,在controller里 "this" 上的属性就可以通过 service 来使用了。
    provider service和factory都是由$provide 服务创建的,$provide服务负责在运行时初始化这些提供者
    注入provider,相当于注入provider内$get定义的函数实例的调用
    Providers是唯一一种你可以传进 .config() 函数的 service
    constant Angular常量,相当于其他语言中的静态常量类
    value 类似constant,value()方法和constant()方法之间最主要的区别是,constant可以注入到配置函数config中,而value不行
       

    angular.module('myApp', []) .config(function($provide, $compileProvider) { $provide.factory('myFactory', function() { var service = {}; return service; }); $compileProvider.directive('myDirective', function() { return { template: '<button>Click me</button>' }; }); }); angular.module('myApp', []) .config(function($routeProvider) { $routeProvider.when('/', { controller: 'WelcomeController', template: 'views/welcome.html' }); }) .config(function(ConnectionProvider) { ConnectionProvider.setApiKey('SOME_API_KEY'); });

    angular.module('myApp', []) .run(function($rootScope, AuthService) { $rootScope.$on('$routeChangeStart', function(evt, next, current) { // 如果用户未登录 if (!AuthService.userLoggedIn()) { if (next.templateUrl === "login.html") { // 已经转向登录路由因此无需重定向 } else { $location.path('/login'); } } }); });

    this is service

    this is factory

    this is provider


    这个常量服务可以像其他服务一样被注入到配置函数中

    123123123 from scope 
    from constant

    123123123
     
  • 相关阅读:
    linux下yum错误:[Errno 14] problem making ssl connection Trying other mirror.
    linux下sudo命令
    myeclipse修改编译器版本的方法 .
    java 使用POI读写Excel文件(兼容2003、2007)
    Google.ProtocolBuffers.dll 之.Net应用(一)
    禁止Grid、TreeGrid列排序和列菜单
    在VS2008中加入ExtJS智能提示
    教程地址
    ExtJS xtype 一览
    ExtJS中,将Grid表头中的全选复选框取消复选
  • 原文地址:https://www.cnblogs.com/meteorcn/p/4681114.html
Copyright © 2011-2022 走看看