두 개의 Angular 사용 방법서로 다른 모듈의 동일한 이름을 가진 JS 서비스를 선택하십시오.
AngularJs용 모듈이 두 개 있다고 가정합니다.foo그리고.bar두 서비스 모두 Catalystand라는 이름의 서비스를 정의합니다.baz.
어플리케이션에서는 다음과 같이 말하고 있습니다.
var app = angular.module('app', [ 'foo', 'bar' ]);
그럼 제가 한번 써볼게요.baz를 사용하여 컨트롤러 내의 서비스
app.controller('blaController', [ '$scope', 'baz', function($scope, baz) {
// ...
}]);
사용하는 두 가지 서비스 중 어떤 것을 정의하려면 어떻게 해야 합니까?정식 이름 같은 게 있나요?
서비스 로케이터는 이름(angularjs 가이드 DI)으로 서비스를 검색합니다.단, Angular에서의 "네임스페이스" 서비스JS:
현재 AngularJS는 서비스에 대한 네임스페이스 충돌을 처리하지 않으므로 이름이 같은 서비스를 사용하는 두 개의 모듈이 있고 앱에 두 모듈을 모두 포함하면 하나의 서비스만 사용할 수 있습니다.
완전 수식명칭은 '수기'로 만들 수 있을 것 같습니다.서비스명칭foo.baz그리고.bar.baz평범하지 않고baz일종의 자기 기만이에요게다가 이렇게 쓴다고 해서 네임스페이스가 진짜가 되는 것은 아니지만, 코드를 읽는 다른 사람이 그렇게 생각할 수도 있다.
같은 이름의 서비스가 2개 있는 경우 로컬모듈에서 사용할 때 구별해야 합니다.이 기능의 구조를 이해하기 위해서, 이하의 몇개의 코드를 참조해 주세요.
2개의 Util 서비스가 있으며, 이를 차별화할 필요가 있습니다.
angular
.module('module1', [
])
.service('UtilService', UtilService)
.service('another.UtilService', UtilService)
.name;
컨트롤러 파일에서는 다음과 같이 간단하게 주입할 수 있습니다.
export class Controller {
public static $inject: string[] = ['UtilService', 'another.UtilService'];
constructor(
private utilService: UtilService,
private anotherUtilService
) {
console.log(this.utilService) // will print the main util service methods
console.log(this.anotherUtilService) // will print the another util service
methods
}
언급URL : https://stackoverflow.com/questions/17862209/how-to-use-two-angularjs-services-with-same-name-from-different-modules
'programing' 카테고리의 다른 글
| 상대 경로와 함께 require 사용 (0) | 2023.03.13 |
|---|---|
| 반응에서 구성 요소 표시/숨기기JS (0) | 2023.03.13 |
| Angular에서 $resource 서비스 테스트JS (0) | 2023.03.13 |
| Swift 3 URL 세션shared() 멤버 'dataTask(with:completionHandler:)'에 대한 애매한 참조 오류(버그) (0) | 2023.03.08 |
| AJAX 응답 데이터가 비어 있는지/빈지/null/정의되지 않음/0인지 확인합니다. (0) | 2023.03.08 |