반응형
AngularJS-서비스, 공장, 필터 등에 의존성 주입
그래서 나는 내 각도 앱에서 사용하고 싶은 플러그인과 라이브러리를 가지고 있으며 (현재) 의존성 주입을 완전히 무시하는 방식으로 99 %의 앱에서 의도 한대로 이러한 함수 / 방법을 단순히 참조하고 있습니다.
예를 들어 날짜 형식 지정 및 유효성 검사를 처리하는 자바 스크립트 라이브러리 "MomentJS"가 있으며 컨트롤러, 서비스 및 필터에서 내 앱 전체에서 사용하고 있습니다. 내가 배운 방법 (AngularJS 사용)은 함수를 참조하는 서비스 (및 메서드)를 만들고 해당 서비스를 컨트롤러에 삽입하는 것입니다.
문제는 서비스에서 필터, 컨트롤러 및 기타 모든 구성 요소에서이 라이브러리를 참조해야한다는 것입니다. 그래서, 제 질문은 필터, 서비스 및 컨트롤러가 아닌 다른 모든 것에 종속성 주입을 어떻게 수행합니까?
이것이 가능한가? 이것이 유익한가요?
어떤 도움이라도 대단히 감사하겠습니다 :)
예, 필터 및 지시문에 종속성 주입을 사용할 수 있습니다.
전의:
필터:
app.filter('<filter>', ['$http', function(http){
return function(data){
}
}]);
지령:
app.directive('<directive>', ['$http', function(http){
return {
....
}
}]);
서비스:
app.factory('<service>', ['$http', function(http) {
var shinyNewServiceInstance;
return shinyNewServiceInstance;
}]);
완전성을 위해 다음은 인젝션을 사용한 서비스 예입니다.
app.service('<service>', ['$http', function($http) {
this.foo = function() { ... }
}]);
이미 존재하는 답변이 정확하고 작동하지만 john papas angular 스타일 가이드 $inject
는 Y091 에서 서비스 사용을 선호합니다 .
필터:
app.filter('<filter', MyFilter);
MyFilter.$inject = ['$http'];
function MyFilter() {
return function(data) {
}
}
지령:
app.directive('<directive>', MyDirective);
MyDirective.$inject = ['$http'];
function MyDirective() {
return {
...
}
}
공장:
app.factory('<factory>', MyFactory);
MyFactory.$inject = ['$http'];
function MyFactory() {
var shinyNewServiceInstance;
return shinyNewServiceInstance;
}
서비스:
app.service('<service>', MyService);
MyService.$inject = ['$http'];
function MyService() {
this.foo = foo;
function foo(){
...
}
}
반응형
'IT박스' 카테고리의 다른 글
PHP : 기본 cURL 제한 시간 값 (0) | 2020.12.11 |
---|---|
명령 출력이 파일 및 터미널로 리디렉션됩니다. (0) | 2020.12.11 |
$ rootScope를 데이터 저장소로 사용하는 AngularJS (0) | 2020.12.11 |
py.test 내부 지원 중단 경고를 억제하는 방법 (0) | 2020.12.10 |
돌아가서 SVN 체크인에 대한 설명을 편집 할 수 있습니까? (0) | 2020.12.10 |