Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/22.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.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
在angularjs中,如何装饰$stateProvider?_Angularjs_Angular Ui Router - Fatal编程技术网

在angularjs中,如何装饰$stateProvider?

在angularjs中,如何装饰$stateProvider?,angularjs,angular-ui-router,Angularjs,Angular Ui Router,这种类型的装饰师与服务和工厂一起工作。我希望它也能与供应商合作。我尝试了以下方法来装饰ui路由器的$stateProvider: app.config(function($provide) { $provide.decorator('$state', function ($delegate) { return $delegate; }); }); 它应该也能正常工作吗?见plunk@ 嗯,谢谢。您的示例显示,此问题可能特定于ui路由器。我已经更新了问题,使其更具体。嗨@GilB

这种类型的装饰师与服务和工厂一起工作。我希望它也能与供应商合作。我尝试了以下方法来装饰ui路由器的
$stateProvider

app.config(function($provide) {
  $provide.decorator('$state', function ($delegate) {
    return $delegate;
  });
});

它应该也能正常工作吗?见plunk@


嗯,谢谢。您的示例显示,此问题可能特定于ui路由器。我已经更新了问题,使其更具体。嗨@GilBirman,你是否设法从angular ui router获得了装饰
$stateProvider
的建议?我今天试着这么做,结果却出现在这一页上。
var app = angular.module('plunker', []);

app.provider('provider', function () {
  this.$get = function () { 
    var provider = {};
    var value = 'test';

    provider.get = function() {
      return value;
    }

    provider.set = function(param) {
      value = param;
    }
    return provider;
  }
});

app.config(function($provide) {
  $provide.decorator('provider', function ($delegate) {
    $delegate.set('delegate');
    return $delegate;
  });
});

app.controller('MainCtrl', function($scope, provider) {
  $scope.name = provider.get();
});