关于AngularJS中几种Providers的区别总结_AngularJS

来源:脚本之家  责任编辑:小易  

后台获取angularjs传的值 http.post传的方法:使用angular-ui-grid,你描述的功能基本是属于grid范畴。引用angular-ui-grid的js文件,使用ui-grid,其中有属性方法得到选中的数据,然后通过service,以restful的形式将所选数据以json形式传到后台www.zgxue.com防采集请勿采集本网。

原文:https://xebia.com/blog/differ...

等效氢,即是在空间位置上完全相同的氢原子,那么其知被取代的效果是完全相同的,主要考虑下面几种情况。同一碳原子上的道氢是等效的 连结在同一碳原子上的甲基上的氢是等效的 关于镜面对称的碳

什么是Provider?

根据注意e799bee5baa6e79fa5e98193e78988e69d8331333431363635的功能,注意可分为: 1、选择性注意,是个体在同时呈现的两种或两种以上的刺激中选择一种进行注意,而忽略另外的刺激。2、持续性

AngularJS文档对provider的定义:

No.of Containers OR P'kgs的意思是: 集装箱数目或者货重量(公斤数) No.of Containers:集装箱数目 填写方法: 如为托运人装箱的整箱货,可只注集装箱数量,如“3 container”,只要海关已对集

provider是一个带有$get()方法的对象。injector调用$get方法创建一个新的service的实例。provider还有一些其他的方法,可以用来配置provider。

下面笔者就从理论的角度结合实际的例子来讲述以下这几种调节规律背后的来龙去脉。(1)比例调节规律的作用是:偏差一出现就能及时调节,但调节作用同偏差量是成比例的,调节终了会产生静态偏差(静差)。(2)

AngularJS使用$provide注册新的providers。providers基本上都会创建一个新实例, 但每个provider只创建一次。$provide提供了6种方法创建自定义provider, 我会用简单的代码示例分别解释他们。

均值极差图,中位数极差图,单值移动极差图,指数权重移动均值图,运行图,预控图,不合格品率图(P图),不合格品数图(Pn图),不合格数图(C图),单位不合格数图(U图),直方图,个体直方图

6种方法如下: constant value service factory decorator provider

Constant

constant能被injected到任何地方。constant不能被decorator拦截, 意味着constant的值永远不能被改变。

var app = angular.module('app', []); app.config(function ($provide) { $provide.constant('movieTitle', 'The Matrix');});app.controller('ctrl', function (movieTitle) { expect(movieTitle).toEqual('The Matrix');});

AngularJS提供了一种更简便的方式创建constant. 你可以将上面3至5行的代码重写为:

app.constant('movieTitle', 'The Matrix');

Value

value是一个简单的可被注入的值,可以是string, number, 也可以是function。

与constant不同的是:value不能被注入到configurations, 但value能被decorators拦截。

var app = angular.module('app', []); app.config(function ($provide) { $provide.value('movieTitle', 'The Matrix')});app.controller('ctrl', function (movieTitle) { expect(movieTitle).toEqual('The Matrix');})

创建value的简单方法:

app.value('movieTitle', 'The Matrix');

Service

service是一个可以注入的构造函数。如果你想,你可以在函数中指定需要的依赖。

service是一个单例, 只被创建一次。services是一个很好的方式,用于控制器之间传递数据,如共享数据。

var app = angular.module('app' ,\[\]); app.config(function ($provide) { $provide.service('movie', function () { this.title = 'The Matrix'; });});app.controller('ctrl', function (movie) { expect(movie.title).toEqual('The Matrix');});

创建service简单方式:

app.service('movie', function () { this.title = 'The Matrix';});

Factory

factory是一个可注入的函数。

与service的相同点:factory也是一个单例,也可以在此函数中指定依赖。

区别是:factory注入一个普通函数,AngularJs将调用此函数,而service注入一个构造函数。

service是一个构造函数,要调用new创建一个新对象。而用factory,你可以让这个函数返回你想要的任何东西。

你将会看到,factory是一个只有$get方法的provider。

var app = angular.module('app', []); app.config(function ($provide) { $provide.factory('movie', function () { return { title: 'The Matrix'; } });});app.controller('ctrl', function (movie) { expect(movie.title).toEqual('The Matrix');});

创建factory的简单方式:

app.factory('movie', function () { return { title: 'The Matrix'; }});

Decorator

decorator可以修改或封装其它的providers,但constant不能被装饰。

var app = angular.module('app', []); app.value('movieTitle', 'The Matrix'); app.config(function ($provide) { $provide.decorator('movieTitle', function ($delegate) { return $delegate + ' - starring Keanu Reeves'; });});app.controller('myController', function (movieTitle) { expect(movieTitle).toEqual('The Matrix - starring Keanu Reeves');});

Provider

provider是所有providers中最复杂的,可以有复杂的creation函数和配置选项。

provider实际是一个可配置的factory。 provider接受一个对象或构造函数。

var app = angular.module('app', []); app.provider('movie', function () { var version; return { setVersion: function (value) { version = value; }, $get: function () { return { title: 'The Matrix' + ' ' + version } } }});app.config(function (movieProvider) { movieProvider.setVersion('Reloaded');});app.controller('ctrl', function (movie) { expect(movie.title).toEqual('The Matrix Reloaded');});

总结

所有的providers只会被实例化一次,因此他们都是单例的。

除了constant,其他的providers都可以被decorated。

constant是一个值, 可以被注入到任何地方,它的值不能被改变。

value是一个简单的可注入的值。

service是一个可注入的构造函数。

factory是以个可注入的函数。

decorator可以修改或封装其它的providers,除了constant。

provider是一个可配置的factory。

到此这篇关于关于AngularJS中几种Providers的区别总结的文章就介绍到这了,更多相关AngularJS中Providers区别内容请搜索真格学网以前的文章或继续浏览下面的相关文章希望大家以后多多支持真格学网!

在巴黎举行的ng-europe大会上,Angular团队为与会者介绍了即将到来的AngularJS 2.0版本的细节。新版本对1.x版本进行了重大的颠覆,当前还没有任何迁移指南,此外它还是基于一个名为AtScript的新语言进行开发的。对于熟悉Angular 1.X版本的开发者来说,他们将看到一个完全不同的框架,并且必须学习一种新的架构。在一堂关于版本2.0的变更的讲座中,Igor Minar 和 Tobias Bosch介绍了新的模板语法:[value]="firstName">(click)="addPerson()">Add这种新语法将数据绑定到元素的属性(property)上,而不是特性(attribute)上。这就允许你使用以下语法:[checked]="someProperty">看上去类似于标准的HTML,但这个复选框元素不会暴露出checked特性。新的模板引擎将数据绑定到元素的属性上,即使这些属性并非由DOM所暴露出的特性。与新架构引起的其它剧变相比,新的模板语法只是一个相对较小的改动。与会者之一的Michael Bromley描述了一些新版本的一些破坏性改动,版本2.0取消了1.X中的以下概念控制器(Controller)(Directive定义对象)scopeangular.modulejqLite关于jqLite的取消,Igor是这样说的:在2.0中,我们不会在框架中使用任何DOM的封装了,而是直接和原始的DOM打交道。自从我们启动项目以来,DOM本身已经得到了很大的改善,因此我们不再需要一个兼容层来帮助我们应付跨浏览器的问题了。所以我们可以直接操作原始的DOM。不过如果你想要使用jQuery,在你的组件中应用jQuery,那也完全没问题。2.0版本的一个目标是改善Angular应用的开发体验,在第2天的主题演讲上,AngularJS之父Mi?ko Hevery描述了如何通过使用AtScript来实现这一目标。AtScript是TypeScript的一个超集,后者是由微软创建的一门语言。TypeScript为JavaScript加入了类型,而AtScript进一步扩展了这一思想,它为类型加入了标注与动态注入。标注允许开发者为某个类加入“表达意图”的能力。因此,无需通过模板代码的方式创建自定义directive,开发者可以创建一个类,并告诉AngularJS“这是一个directive”。而动态注入的能力允许框架在运行时检查类型信息。不过,AtScript的使用是可选的,开发Angular 2.0应用并不一定要使用AtScript。Mi?ko说道:由于现在的社区和类库都是使用纯JavaScript开发的,因此不强迫AtScript的使用是非常重要的目标。而由于AtScript可以直接编译为EcmaScript 5(ES5),因此开发者可以直接编写Angular 2.0。在一次问答讲座上,开发者们问道Angular 1.3还将获得多长时间的支持。Brad Green是这样回答的:比较合理的期望是,我们大约还需要1年半至2年时间以发布2.0的最终版本,这段时间内我们还会为1.3提供缺陷修复及安全补丁。Angular团队还暗示他们没有为从Angular 1.X迁移到2.0提供迁移指南,但他们也不排除这种可能。目前还没有确切的发布日期,不过团队基本达成了共识,会在2015年终最终完成版本2.0。Brad Green还表示,Angular 2.0只会支持“最新的浏览器”,但没有指出确切的版本。他说他们的团队“在尝试基于未来的标准进行开发,而不是关注于现有的标准”。开发者们对于这次重大变更的感觉可谓是五味陈杂。Hacker News的用户zak_mc_kracken说道:虽然新版本依然叫做“Angular”,但它与之前的版本几乎没有多少相似之处,它完全是一个新的框架。一想到我对于Angular 1所掌握的全部知识都将成为过期的内容,就禁不住感到有点儿悲伤,但我也很期待对这个新的框架进行一番研究。如果它的革新性能够达到Angular 1的一半,那我就会从中获得很大的乐趣。ng-europe大会的视频曾被短暂地上传到YouTube上,但很快就被删除了内容来自www.zgxue.com请勿采集。


  • 本文相关:
  • 理解angular的providers给http添加默认headers
  • 详解angular中的自定义服务service、provider以及factory
  • angularjs基于provider实现全局变量的读取和赋值方法
  • angularjs provider、factory、service详解及实例代码
  • 详解在angularjs中ui-sref和$state.go如何传递参数
  • angularjs 实现javascript 动画效果详解
  • 深入浅析angularjs模版与v-bind
  • angularjs+node.js实现在线聊天室
  • angularjs 中的指令实践开发指南(一)
  • angularjs基础教程
  • angular发布1.5正式版,专注于向angular 2的过渡
  • angular.js中上传指令ng-upload的基本使用教程
  • angularjs学习笔记之todomvc的分析
  • angular ng-click防止重复提交实例
  • angularjs有几种启动方式
  • angularjs formdada 在http传参的写法有几种
  • angularjs 指令调用方式有几种
  • angular自定义服务有哪几种区别是什么
  • 请问等效氢是什么?一氯代物又是什么?怎么找啊?那个什么几种几种的怎么算啊?那是什么啊
  • 关于心理学中的注意:注意的分类有哪几种?注意的分类与品质有何区别?谢谢啦!
  • 信用证出现了几种包装,托运单中No. of Containers OR P'kgs 怎么填?
  • 浅析P、I、D几种控制规律的作用
  • 控制图有哪几种
  • 中央纪委关于不正当的男女关系中几种不同类型的认定
  • 网站首页网页制作脚本下载服务器操作系统网站运营平面设计媒体动画电脑基础硬件教程网络安全yui.ext相关prototypejqueryangularjsjsonlib_jsjs面向对象extjsmootoolsseajsdojovue.jsbackbone.js其它首页javascriptjavascript类库angularjs理解angular的providers给http添加默认headers详解angular中的自定义服务service、provider以及factoryangularjs基于provider实现全局变量的读取和赋值方法angularjs provider、factory、service详解及实例代码详解在angularjs中ui-sref和$state.go如何传递参数angularjs 实现javascript 动画效果详解深入浅析angularjs模版与v-bindangularjs+node.js实现在线聊天室angularjs 中的指令实践开发指南(一)angularjs基础教程angular发布1.5正式版,专注于向angular 2的过渡angular.js中上传指令ng-upload的基本使用教程angularjs学习笔记之todomvc的分析angular ng-click防止重复提交实例angular.foreach 循环方法使用指学习angularjs:directive指令用法angularjs中$apply()方法详解angular.element方法汇总angularjs 日期格式化详解angularjs指令中的compile与linkangularjs内置指令jquery和angularjs的区别浅析angularjs实现元素显示和隐藏的几angularjs根据访问的页面动态加载angular5中提取公共组件之radio list的实angular实现点击按钮后在上方显示输入内容highcharts 在angular中的使用示例代码angular分页指令操作angularjs基础 ng-hide 指令用法及示例代解决angularjs wdatepicker ng-model的问整理angularjs中的一些常用指令浅谈angularjs $http提交数据探索深入理解angularjs-scope的脏检查(一)总结angularjs开发者最常犯的十个错误
    免责声明 - 关于我们 - 联系我们 - 广告联系 - 友情链接 - 帮助中心 - 频道导航
    Copyright © 2017 www.zgxue.com All Rights Reserved