简话Angular 07 Angular config-run-service-factory-provider-constant-value

一句话: 它们Angular框架声明周期的各个阶段,常规约定各专注于特定功能,经过处理也可以互相替换

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不行
   


config实例

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‘);
});



run实例

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‘);
}
}
});
});



service factory provider实例

this is service

this is factory

this is provider



constant实例

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

123123123 from scope 
from constant



value实例

123123123

2. 在线查看运行效果

http://jimuyouyou.github.io/angular-bootstrap-rest-seed/examples/angular/7-config-run-service-factory-provider-constant-val.html

3. 项目地址

github: https://github.com/jimuyouyou/angular-bootstrap-rest-seed

时间: 2024-12-18 00:23:03

简话Angular 07 Angular config-run-service-factory-provider-constant-value的相关文章

Angularjs1.x 中的 service,factory,provider,constant,value

了解 Angularjs1.x 中的 service,factory,provider,constant,value 的应用场景及区别 不管 service , factory 还是 provider 都属于 service 关于 service service 一旦被定义后就可以在任何地方通过依赖的方式调用且可以保存数据,直到应用结束,比如 controller(['service', function(service){}]); 而 controller 则一旦路由发生变化 controll

angular 服务 service factory provider constant value

angular服务 服务是对公共代码的抽象,由于依赖注入的要求,服务都是单例的,这样我们才能到处注入它们,而不用去管理它们的生命周期. angular的服务有以下几种类型: 常量(Constant): 用于声明不会被修改的值. 变量(Value): 用于声明会被修改的值. 服务(Service): 这个名称跟服务这个大概念同名,就种行为就像是给自己孩子取名为"孩子".只需要创建这个服务,然后等angular把它new出来,保存这个服务,然后就可以到处注入了. 工厂(Factory): 

angularjs---服务(service / factory / provider)

初angularJs时  常写一些不够优雅的代码  !我总结了一下看看各位有没有中枪的!-----( 这里只针对服务service及其相关! ) 以下做法不太优雅 兄弟controller 之间的相同的业务逻辑的实现 靠  从父 controller 通过继承实现.   × 将大量的不必要的业务逻辑和持久化的数据  堆放在 $scope  和controller中.    × ...... 其实我们应该把业务逻辑和持久化的数据尽量放在service中 从内存性能的角度来看,只有在需要contro

angluar 区分service/factory/provider 的“hello world”版

var myApp = angular.module("myApp",[]); // controller 中引用 provider factory service 的时候,不需要添加后缀... myApp.controller("myController",function($scope,my,myFactory,myService){     $scope.hellos = [         my.sayHello(),         myFactory.s

简话Angular 01 为什么要学Angular

1. JQuery vs Javascipt 问两个问题: 1) 你用过JQuery吗?当然! 2) 感觉JQuery相对于原生纯Javascript优势在哪里? 我的答案:JQuery更直接方便,兼容性好,代码少,好理解,快速开发,Bug少…… 2. Angular vs JQuery 参照JQuery vs Javascript 3. Angular的前途怎么样 假如今天是2008年,有人问JQuery前途怎么样,你知道吗?现在你知道JQuery前途了吗? 4. Angular可以不学吗 不

简话Angular 01 初识Angular 数据绑定

1. Angular有哪些突出优点 1) MVC 基于Html-Javascript 2) 依赖注入 3) 数据双向绑定,响应式页面设计 4) 模块化,自定义指令 2. 简话数据绑定 1) 代码: 1 <input type="text" ng-model="hello1"> 2 3 <input type="text" ng-model="hello2"> 4 5 <textarea ng-bi

[Angular 2] 6. Factory Provider

In this lesson, we discuss how and when to use factory providers, to enable dependencies that shouldn’t be available to Angular’s DI. If you have this service: export class LoggerProvider { constructor(enabled: boolean){ if(enabled){ console.log("Log

angular.isArray,angular.isDate,angular.isDefined,angular.isElement,angular.isFunction,angular.isNumber,angular.isObject,angular.isString,angular.isUndefined

//angular.isArray是否是数组console.log(angular.isArray([])); //trueconsole.log(angular.isArray([1,2,1,3])); //true//angular.isDate是否是日期console.log(angular.isDate('2012-12-02')); //falseconsole.log(angular.isDate(new Date)); //true//angular.isDefined引用对象是否

AngularJS 之 Factory vs Service vs Provider【转】

英文原文:AngularJS: Factory vs Service vs Provider 当你初试 Angular 时,很自然地就会往 controller 和 scope 里堆满不必要的逻辑.一定要早点意识到,controller 这一层应该很薄:也就是说,应用里大部分的业务逻辑和持久化数据都应该放在 service 里.我每天都会在 Stack Overflow 上看到几个同类的问题,关于如何在 controller 里保存持久化数据.这就不是 controller 该干的事.出于内存性