angularjs 装饰器 Decorator

简介:

Decorator
装饰, 在已有的功能上锦上添花
Use case 使用场景:

我有一个module A依赖于另外一个module B。 module B有个service Mail, 这个服务提供两个方法setReceiver 和 setBody 分别用来指定邮件的收件人和邮件的内容。 但是在module A 使用Mail服务的时候, 我希望还可以指定抄送的人。 这个时候我就可以在已有的service上扩展下(装饰下)加个addCC的方法。

Java代码   收藏代码
  1. var Mail = function() {  
  2.     this.receiver = '';  
  3.     this.body = '';  
  4.     this.cc = [];  
  5. };  
  6.   
  7. Mail.prototype.setReceiver = function(receiver) {  
  8.     this.receiver = receiver;  
  9. };  
  10.   
  11. Mail.prototype.setBody = function(body) {  
  12.     this.body = body;  
  13. };  
  14.   
  15. angular.module('A', []).service('Mail', Mail);  

Module B

Java代码   收藏代码
  1. angular.module('B', ['A']).config(function($provide) {  
  2.     $provide.decorator('Mail', function($delegate) {  
  3.         $delegate.addCC = function(cc) {  
  4.             this.cc.push(cc);  
  5.         };  
  6.         return $delegate;  
  7.     });  
  8. })  
  9. .controller('TestCtrl', function($scope, Mail) {  
  10.     Mail.addCC('jack');  
  11.     console.log(Mail);  
  12. });  

 

相关文章
|
2月前
|
缓存 监控 JavaScript
理解ES6中的Decorator
理解ES6中的Decorator
24 2
|
缓存 监控 JavaScript
面试题-TS(八):什么是装饰器(decorators)?如何在 TypeScript 中使用它们?
在TypeScript中,装饰器(`Decorators`)是一种用于增强代码功能的特殊类型声明。装饰器提供了一种在类、方法、属性等代码元素上注释或修改的方式,使得我们可以通过装饰器来扩展、修改或监视代码的行为。通过使用装饰器,我们可以在不修改原始代码的情况下,给代码添加新的功能,提高代码的可维护性和灵活性。
|
JavaScript 前端开发 Java
typescript(ts)面向对象之装饰器
每一个属性都要验证,我们就要写一个if 来进行判断,100个属性就要写100遍,然后每一个if中的条件还有可能相同,就会导致我们写重复的代码,这是非常麻烦的。
typescript(ts)面向对象之装饰器
|
JavaScript
AngularJs错误http://errors.angularjs.org/1.2.9/$injector/unpr?p0=...
AngularJs错误http://errors.angularjs.org/1.2.9/$injector/unpr?p0=...
88 0
|
数据采集 存储 搜索推荐
【进阶篇】es7的decorator修饰器
【进阶篇】es7的decorator修饰器
171 0
|
JavaScript 前端开发
AngularJS中的方法参数的问题
AngularJS中的方法参数的问题
107 0
AngularJS中的方法参数的问题
|
JavaScript 前端开发
ES6 系列之我们来聊聊装饰器
## Decorator 装饰器主要用于: 1. 装饰类 2. 装饰方法或属性 ### 装饰类 ```js @annotation class MyClass { } function annotation(target) { target.annotated = true; } ``` ### 装饰方法或属性 ```js class
1536 0
ES6(Decorator(修饰器)
Decorator(修饰器) 1.基本概念 函数用来修改 类 的行为 1.Decorator 是一个函数 2.通过Decorator(修饰器)能修改 类 的行为(扩展 类 的功能)3.
1205 0
|
JavaScript 前端开发
|
前端开发 JavaScript 索引
angular中的装饰器 详解
Angular中的装饰器是一个函数,它将元数据添加到类、类成员(属性、方法)和函数参数。用法:要想应用装饰器,把它放到被装饰对象的上面或左边。 Angular 使用自己的一套装饰器来实现应用程序各部件之间的相互操作 这个地方是前面几个模块模块、指令、组件、依赖注入等从装饰器这个侧面的整理 你需要做的: 1.搞清楚理解TypeScript的装饰器的原理 2.搞清楚这里面每一个装饰器的作用,解决的什么问题,应用场景类装饰器****** Angular 有很多装饰器,它们负责把元数据附加到类上,以了解那些类的设计意图以及它们应如何工作。
1260 0