我有一个关于使用服务的问题。我正在以这种方式创建服务 一切正常。这是我的代码。
var appName = angular.module('appName', ['configuration', 'angularSpinner']);
// this is whay that I creating services.
(function (module) {
var moduleName = function () {
return function(inputVar) {
// some work with
// inputVal variable
return result;
}
};
module.factory("moduleName", [moduleName]);
}(angular.module("appName")));
// in this way I'm using service into controller.
appName.controller('controllerName', function($scope, moduleName) {
});
我的问题是我需要在'appName'中设置'moduleName'。就是这样:
var appName = angular.module('appName', ['configuration', 'angularSpinner', 'moduleName']);
在这两种情况下,一切正常。我将不胜感激任何意见和建议。
祝你好运。
答案 0 :(得分:1)
是的,你需要
var appName = angular.module('appName', ['configuration', 'angularSpinner', 'moduleName'])
'appName'是主模块名称,'moduleName'是子模块名称。如果您将'moduleName'与'appName'放在一起,那么无论您使用'appName',都可以调用'modulname'函数。
主要模块:
angular.module('appName',
子模块:
, ['configuration', 'angularSpinner', 'moduleName']
概念由Dependency Injection概念
起作用答案 1 :(得分:1)
我的问题是我需要在'appName'中设置'moduleName'。就是这样:
不,不,除非您实际创建另一个模块。在这种情况下,您的moduleName实际上是您的工厂名称。如果你想创建另一个模块,你可以这样做。
var myModule = angular.module('myModule', []);
myModule.factory('myFactory', [function(){ /* factory definition */ }]);
var app = angular.module('app', ['myModule']);
// this will now make myFactory available to my app
您使用返回函数的工厂方法。如果需要服务(单个对象),请使用服务方法。
我创建了这样的服务
var app = angular.module('app', []);
app.service('myService', [function(){
var serviceMember = { name: 'something' };
var serviceMethod = function() { };
// revealing module pattern
return {
serviceMember: serviceMember,
serviceMethod: serviceMethod
};
}]);