필자는 같은 기능을 수행 한 후에 동일한 함수를 호출해야하는 몇 가지 지시문이 있습니다. 이 함수는 주 컨트롤러 범위에 액세스해야하지만 DOM도 수정해야합니다. 이 함수를 어디에서 어떻게 선언해야합니까? 이 기능은 컨트롤러의 범위를 액세스 할 필요가있는 경우각도 재사용 가능 함수
답변
서비스는 $rootScope
에 대한 액세스 권한이 있습니다. DOM 수정을 지시문 수준으로 유지하는 것이 더 좋지만 경우에 따라 서비스를 이용할 수 있습니다.
angular.module("myModule", [])
.factory("MyService", function ($rootScope) {
return {
myFunction: function() { // do stuff here }
}
})
.directive("MyDirective", function (MyService) {
return {
link: function (scope, iElement, iAttrs) {
// try do keep dom modification here, you have access to MyService,
// let it do the algorithm and try to keep dom modification here.
// PS: you can also inject $rootScope to directives.
};
};
});
+1입니다. 재사용 가능한 함수가 서비스 내에서 어떻게 선언 될 수 있는지를 알면 분명히 액세스 할 필요가있는 지시어로 전달 될 수 있습니다. 고마워요. – supermasher
, 나는 지시에 액세스 할 수있는 범위를 사용하는 것이 그래서 같이 PARAM로 전달 :
var MyDirective = function() {
var linkFn = function(scope, element, attrs) {
callAwesomeFn(scope);
};
return {
link: linkFn
}
};
지금, 어디에 넣어?
- 이 유틸리티 함수 인 경우이 각도에 의해 관리되는 다른 객체와 상호 작용하는 데 필요한 구성 요소 인 경우, 나는
MyFunctions.callAwesomeFn()
- 같은 일부 유틸리티 네임 스페이스에 둘 것 - 의존성 주입을 사용하고 지시 에 주입이
감사합니다 루카스, 범위를 유틸리티 함수로 전달하는 것은 정확히 제가 한 일입니다. 조금 더러워 져서 내 목표를 달성하기 위해 범위 밖의 범위를 지나치고 있다고 느낍니다. 재사용 가능한 함수는 두 개의 다른 함수를 호출합니다. 하나는 DOM을 수정하고, 다른 하나는 컨트롤러 기능을 호출합니다. 두 번째 제안 (DI)이이 목적에 적합한 지 확신 할 수 없습니까? 솔루션 및 예제는 – supermasher
- 1. jQuery 재사용 가능 함수
- 2. mysql 데이터를 가져 오기위한 재사용 가능 함수
- 3. 각도 지시어에 대해 "재사용 가능"이란 정확히 무엇을 의미합니까?
- 4. JQuery 재사용 가능 기능
- 5. xml "재사용 가능"코드
- 6. 코드 재사용 가능 스타일
- 7. 공성 포트 재사용 가능
- 8. 재사용 가능 활동
- 9. Symfony 재사용 가능 서비스
- 10. 각도 2 부품 재사용
- 11. 각도 재사용 대화 상자
- 12. 재사용 가능한 jQuery 자르기 함수
- 13. 응용 프로그램의 재사용 가능 부분
- 14. Android 재사용 가능 레이아웃 작성
- 15. 회원 평가 코드/재사용 가능
- 16. 검토 : 재사용 가능 safe_bool 구현
- 17. 분할보기를 사용하는 TableView 재사용 가능
- 18. 재사용 가능 변수로 free_result 필요
- 19. PHP MySQL 테이블, 재사용 가능
- 20. 사용자 지정 재사용 가능 UITableViewCell
- 21. iOS에서 AudioUnit 그래프의 재사용 가능
- 22. 매끄러운 재사용 가능 InsertAndUpdate 특성
- 23. 크기 조정 가능 각도
- 24. 각도 2 관측 가능
- 25. 각도 필터 입력 가능
- 26. 각도 재질 응답 가능 스크롤 가능
- 27. 재사용 그룹 LINQ 함수
- 28. Verilog의 함수 재사용
- 29. jQuery 함수 재사용
- 30. django - 여러보기에서 함수 재사용
주 컨트롤러 범위 아래에있는 모든 지시문이 있습니까? 다시 말해, 주 컨트롤러가 정의 된 요소 (예 :
@bmleite - 예, 그렇습니다. – supermasher