Angularjs 尝试定义和配置自定义提供程序时出现问题
我很确定我遵守了所有规则:Angularjs 尝试定义和配置自定义提供程序时出现问题,angularjs,angularjs-service,Angularjs,Angularjs Service,我很确定我遵守了所有规则: 已定义$get() 正确注入控制器 在实例化之前在初始应用程序定义中进行配置 这是一个 提供者的$http和$q注入应该在提供者的$get方法上,而不是提供者的构造函数上 小提琴: .provider('MockService',函数(){ this.mocksEnabled=false; this.enableMocks=功能(val){ mocksEnabled=val; }; 这个.get=['$http','$q',函数($http,$q){ var\u
- 已定义$get()
- 正确注入控制器
- 在实例化之前在初始应用程序定义中进行配置
提供者的
$http
和$q
注入应该在提供者的$get
方法上,而不是提供者的构造函数上
小提琴:
.provider('MockService',函数(){
this.mocksEnabled=false;
this.enableMocks=功能(val){
mocksEnabled=val;
};
这个.get=['$http','$q',函数($http,$q){
var\u mock\u getNext=function(){
返回{
“状态”:{
'类型':'确定',
“msg”:null
},
“数据”:{
“id”:123456789
}
};
};
返回{
getData:function(){
如果(此为mocksEnabled){
返回\u mock\u getNext;
}否则{
返回“真实数据”;
}
}
};
}];
})
其他小问题:
未注入控制器$scope
- 在服务的
函数中,getData
需要是this.mocksEnabledmocksEnabled
var-app=angular.module('ToolApp',function($httpProvider,$routeProvider,$locationProvider,RxQueueProvider){})。提供程序('MockServiceProvider',function()…
但是在我的本地开发环境中,我得到一个缺少的提供程序异常,除非在我注入它之前调用app.provider()。Whyyyy?
angular.module('app', function($httpProvider, $locationProvider, MockServiceProvider) {
delete $httpProvider.defaults.headers.common['X-Requested-With'];
$locationProvider.html5Mode(false);
MockServiceProvider.enableMocks(true);
})
.provider('MockService',['$http', '$q', function ($http, $q) {
this.mocksEnabled = false;
this.enableMocks = function(val) {
mocksEnabled = val;
};
this.$get = function() {
var _mock_getNext = function() {
return {
'status' : {
'type': 'OK',
'msg': null
},
'data': {
'id': 123456789
}
};
};
return {
getData : function() {
if(mocksEnabled) {
return _mock_getNext;
} else {
return "Real Data";
}
}
};
};
}])
.controller('Main', function(MockService) {
$scope.maybe_mock_data = MockService.getData();
});