`
hudeyong926
  • 浏览: 2034827 次
  • 来自: 武汉
社区版块
存档分类
最新评论

angularjs 装饰器 Decorator

 
阅读更多

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

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

var Mail = function() {
    this.receiver = '';
    this.body = '';
    this.cc = [];
};

Mail.prototype.setReceiver = function(receiver) {
    this.receiver = receiver;
};

Mail.prototype.setBody = function(body) {
    this.body = body;
};

angular.module('A', []).service('Mail', Mail);

Module B

angular.module('B', ['A']).config(function($provide) {
    $provide.decorator('Mail', function($delegate) {
        $delegate.addCC = function(cc) {
            this.cc.push(cc);
        };
        return $delegate;
    });
})
.controller('TestCtrl', function($scope, Mail) {
    Mail.addCC('jack');
    console.log(Mail);
});

 

 
分享到:
评论

相关推荐

    mybatis3+springmvc4+angularjs+mysql+decorator实例

    5. Decorator模式:装饰者模式是一种设计模式,允许动态地给对象添加新的行为或责任。在Java中,通过继承和组合,可以在不修改已有代码的情况下扩展功能。在本项目中,Decorator模式可能被用于数据库访问或者服务层...

    AngularJS 学习资料

    - **装饰器(Decorator)**:装饰器模式可以在不修改原服务代码的情况下扩展服务的功能。 #### 四、AngularJS中的依赖注入 依赖注入(Dependency Injection, DI)是AngularJS的核心特性之一。它使得组件之间的耦合度...

    decorum-ng:基于Decorum ES7装饰器的验证框架的AngularJS指令

    "decorum-ng"是一个专门针对AngularJS设计的验证框架,它利用ES7的装饰器(Decorator)特性来实现,大大简化了代码并提高了可维护性。 首先,让我们深入了解ES7装饰器。装饰器是一种特殊类型的声明,可以被附加到类...

    Angular-rich-logger-decorator.zip

    Angular-rich-logger-decorator.zip,丰富的记录器类型脚本装饰器,便于编码和调试丰富的记录器装饰器,Angularjs于2016年发布,是Angularjs的重写版。它专注于良好的移动开发、模块化和改进的依赖注入。angular的设计...

    AngularJS in patterns

    文档还讨论了在多个组件中使用的模式,比如工厂(factory)方法、单例模式、装饰者(decorator)模式、外观(façade)模式、代理(proxy)模式等等。 在单页应用中常见的架构模式,如活动记录(Active Record)、...

    Angular-apollo-storybook-decorator.zip

    Angular-apollo-storybook-decorator.zip,使用Apollo客户端包装您的故事书环境,使用GraphQlapolo故事书装饰器为独立的UI测试提供模拟,Angularjs于2016年发布,是Angularjs的重写版。它专注于良好的移动开发、模块化...

    component-router-ng-1.x-decorator-sample

    带有 ES7 装饰器和组件路由器的 AngularJS-1.x 代码 这个例子说明了使用: 组件路由器(版本 0.5.x) AngularJS 1.x 和 EcmaScript 6(通过 Babel 转译) 带有 ES7 装饰器的 AngularJS 1.x 另见: : 。

    angular2 最新教程(全网首发)

    每个组件都由一个装饰器(Decorator)定义,它告诉Angular这个类是组件类。组件通过模板(Template)来定义它的视图,模板是HTML的扩展,包含了额外的Angular指令和绑定。 2. 模板(Templates):Angular2的模板...

    angular-utils:只是angular1.x es6 utils

    使用 装饰器关于@Router@Router 只记录路由配置(注意这里指的是 UI-Router ^0.2.18), 并未进行路由配置. 因此使用 decoratedModule 中的 routerAll 方法配置路由注意:如果使用 Uglify 压缩代码, 请禁用 mangle { ...

Global site tag (gtag.js) - Google Analytics