Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 扩展现有服务_Javascript_Angularjs - Fatal编程技术网

Javascript 扩展现有服务

Javascript 扩展现有服务,javascript,angularjs,Javascript,Angularjs,我使用的是Angle growl服务(),我需要一个方法来添加特定类型的咆哮,例如 .controller('Controller', ['$scope', 'growl', function ($scope, growl) { growl.add("Message", "INFO"); } 当angular启动流程时,是否可以将新方法附加到咆哮服务(或将方法附加到任何服务)?基本上,您可以使用angular装饰器的概念来扩展现有服务。这是通过$provide.decorator完成

我使用的是Angle growl服务(),我需要一个方法来添加特定类型的咆哮,例如

.controller('Controller', ['$scope', 'growl', function ($scope, growl) {
     growl.add("Message", "INFO");
}

当angular启动流程时,是否可以将新方法附加到咆哮服务(或将方法附加到任何服务)?

基本上,您可以使用angular
装饰器的概念来扩展现有服务。这是通过
$provide.decorator
完成的。实现如下所示:

app.config(function($provide) {
  $provide.decorator('growl', function($delegate) {
    $delegate.add = function(message, type) {
      // implementation for add.
    };
    return $delegate;
  });
});
在这篇文章中阅读更多关于它的信息