我已经将angularjs与angularjs app集成在一起。
现在我得到了错误'Provider commonService must define $get factory method. from myApp '
我如何在requirejs中包含服务? 我在这里发布serviceConfig代码:
define([
'angular',
'Services/services',
'Plugins/Users/services',
], function(angular, commonService,usersServices) {
var services = {
commonService : commonService,
usersServices : usersServices,
};
var initialize = function (angModule) {
angular.forEach(services,function(service, name) {
angModule.factory(name, service);
});
}
return {
initialize: initialize
};
})
'服务/服务'和'插件/用户/服务'包含不同的服务。 例如
define(['angular'], function (angular) {
app = angular.module(appName + '.services', []);
app.factory('usersService', function($http, $q, $rootScope) {
function usersService() {
this.registration = function(config) {
return this.common(config);
};
}
return new usersService();
});
});
这里有什么问题?
答案 0 :(得分:0)
看起来您正在尝试两次注册该服务。在服务定义“服务/服务”中,您可以创建一个模块“myApp.services”并注册该服务。
您无需在serviceConfig / initialize中再次注册它们。 然后你只需要在创建主模块时引用这些模块('myApp'我假设),如下所示:
app = angular.module("myApp", ["myApp.services", "myApp.plugin.services"]);
请注意,您仍需要事先要求serviceConfig,因此模块会以angular角度注册。
答案 1 :(得分:0)
我收到了来自angular-gravar的类似错误消息:“”提供者gravatarService必须定义$ get factory方法。“
我通过编辑代码来修复provider('gravatarService', function() { … }
而不是provider('gravatarService', [ function() { … } ]
。
那是在Angular 1.02上;我已经升级到1.2.16然后它与包装数组工作正常。