提供商
Provider
在配置阶段和运行阶段均可用。
Provider 配方在语法上定义为实现
$get
方法的自定义类型。只有在要为应用程序范围的配置公开 API 时才应使用 Provider 配方,该 API 必须在应用程序启动之前进行。这通常只适用于可重用服务,其行为可能需要在应用程序之间略有不同。
angular.module('app',[])
.provider('endpointProvider', function() {
var uri = 'n/a';
this.set = function(value) {
uri = value;
};
this.$get = function() {
return {
get: function() {
return uri;
}
};
};
})
.config(function(endpointProviderProvider) {
endpointProviderProvider.set('http://some.rest.endpoint');
})
.controller('MainCtrl', function(endpointProvider) {
var vm = this;
vm.endpoint = endpointProvider.get();
});
<body ng-controller="MainCtrl as vm">
<div>endpoint = {{::vm.endpoint }}</div>
</body>
endpoint = http://some.rest.endpoint
没有 config
阶段的结果将是
endpoint = n / a