2014-02-26 3 views
1

서비스 사용에 관해 하나의 질문이 있습니다. 나는이 방법으로 서비스를 만들고 있습니다. 그리고 모든 것이 제대로 작동합니다. 여기 내 코드가있다.AngularJS에서 서비스 사용에 대한 불확실성

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']); 

두 경우 모두 제대로 작동합니다. 나는 어떤 의견이나 권고도 감사 할 것이다.

감사합니다.

답변

1

내 질문은 내가에서 '모듈 이름'을 설정해야 할 것입니다 Dependency Injection 개념으로 작동 'appName'. 즉, 다음과 같습니다.

실제로 다른 모듈을 만들지 않는 한 그렇지 않습니다. 이 경우 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 

귀하가 기능을 반환하는 팩토리 메소드를 사용하고 있습니다. 서비스 (싱글 톤 객체)가 필요하면 service 메소드를 사용하십시오.

나는이

var app = angular.module('app', []); 

app.service('myService', [function(){ 

    var serviceMember = { name: 'something' }; 

    var serviceMethod = function() { }; 

    // revealing module pattern 
    return { 
     serviceMember: serviceMember, 
     serviceMethod: serviceMethod 
    }; 

}]); 
+0

감사합니다. 나 한테 뭔가 가르쳐 줬어. –

1

예, 당신은

var appName = angular.module('appName', ['configuration', 'angularSpinner', 'moduleName']) 

'APPNAME'

필요 메인 모듈의 이름이며, '모듈 이름은'서브 모듈의 이름입니다. 'moduleName'을 'appName'과 함께 입력하면 'appName'을 사용하는 모든 곳에서 'modulname'함수를 호출 할 수 있습니다.

메인 모듈 :

angular.module('appName', 

하위 모듈 :

, ['configuration', 'angularSpinner', 'moduleName'] 

개념은

+0

처럼 내 서비스를 만들 수 있음. 하지만 배열로 'appName'을 설정하지 않으면 왜 작동합니까? –

+1

내 updatd 답변보기, –

+1

배열에 srt appName이 필요하지 않습니다. 그것은 메인 모듈입니다. 개념은 의존성 주입과 같습니다. –