栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

AngularJS服务继承

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

AngularJS服务继承

AngularJS不提供任何直接实现服务继承的机制,但是对于您而言,您可以使用$
provide.decorator
扩展

baseService
自身或像
ChildService
使用普通Javascript
的原型一样使用它。在我的实践中,为了使服务具有可配置的状态和行为,我使用provider。在以下所有示例中,控制台输出将为
World

装饰器

如果您

baseService
的模块中不需要原件,则可以装饰它

柱塞

function alertService() {  this.add = function(level, message) {    switch(level) {      case 'success':        console.log(message);    }  }}function baseService(alertService) {  this.message =  "Hello";  this.perform = function () {    alertService.add("success",this.message);  };}angular.  module('app',[]).  config(['$provide', function($provide) {    $provide.decorator('baseService', function($delegate) {      $delegate.message = 'World';      return $delegate;    });  }]).  service('alertService', alertService).  service('baseService', ['alertService',baseService]).  controller('ctrl', ['baseService', function(baseService) {    baseService.perform();  }]);

原型继承

柱塞

function alertService() {  this.add = function(level, message) {    switch(level) {      case 'success':        console.log(message);    }  }}function baseService(alertService) {  this.message =  "Hello";  this.perform = function () {    alertService.add("success",this.message);  };}function ChildService(baseService) {  angular.extend(ChildService.prototype, baseService);  this.message = "World";}angular.  module('app',[]).  service('alertService', alertService).  service('baseService', ['alertService',baseService]).  service('ChildService', ['baseService',ChildService]).  controller('ctrl', ['ChildService', function(ChildService) {    ChildService.perform();  }]);

提供者

柱塞

function alertService() {  this.add = function(level, message) {    switch(level) {      case 'success':        console.log(message);    }  }}function baseService() {  var message =  "Hello";  this.setMessage = function(msg) {    message = msg;  }  function Service(alertService) {    this.perform = function () {      alertService.add("success", message);    };  }  function Factory(alertService) {    return new Service(alertService);  }  this.$get = ['alertService', Factory];}angular.  module('app',[]).  provider('baseService', baseService).  config(['baseServiceProvider', function(baseServiceProvider) {    baseServiceProvider.setMessage('World');  }]).  service('alertService', alertService).  controller('ctrl', ['baseService', function(baseService) {    baseService.perform();  }]);


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/436389.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号