반응형
$rootScope에 액세스할 수 없습니다.
다음 파일은 "작동"합니다(오류를 발생시키지 않는다는 의미).
<!doctype html>
<html ng-app="modx">
<script src="http://code.angularjs.org/angular-1.0.0rc7.js"></script>
<script>
angular.module("modx", [], function($routeProvider) {
});
</script>
</html>
근데 이거
<!doctype html>
<html ng-app="modx">
<script src="http://code.angularjs.org/angular-1.0.0rc7.js"></script>
<script>
angular.module("modx", [], function($routeProvider, $rootScope) {
});
</script>
</html>
에러가 표시됩니다.
오류: 알 수 없는 공급자: modx의 $rootScope
소스 파일: http://code.angularjs.org/angular-1.0.0rc7.js
회선: 2491
WTF?
구성 단계에서는 예를 요청할 수 없습니다. 공급자에 대해서만 요청할 수 있습니다.
var app = angular.module('modx', []);
// configure stuff
app.config(function($routeProvider, $locationProvider) {
// you can inject any provider here
});
// run blocks
app.run(function($rootScope) {
// you can inject any instance here
});
상세한 것에 대하여는, http://docs.angularjs.org/guide/module 를 참조해 주세요.
다음의 「패턴」이 매우 도움이 됩니다.
MainCtrl.$inject = ['$scope', '$rootScope', '$location', 'socket', ...];
function MainCtrl (scope, rootscope, location, thesocket, ...) {
여기서 MainCtrl은 컨트롤러입니다.이름을 바꾸고 일을 망칠까 봐 컨트롤러 함수의 파라미터 이름에 의존하는 것이 불편합니다.이 목적으로 $inject를 명시적으로 사용하는 것이 좋습니다.
저는 당신이 했던 것처럼 구문을 사용하는 것을 추천하지 않습니다.AngularJs를 사용하면 원하는 대로 다양한 기능을 사용할 수 있습니다(run
,config
,service
,factory
, 등)이 더 프로페셔널합니다.이 기능에서는 직접 주사할 필요도 없습니다.
MainCtrl.$inject = ['$scope', '$rootScope', '$location', 'socket', ...];
너도 알다시피 쓸 수 있어.
언급URL : https://stackoverflow.com/questions/10486769/cannot-get-to-rootscope
반응형
'itsource' 카테고리의 다른 글
jQuery DataASP를 사용한 서버측 처리를 가능하게 합니다.NET Web Forms (0) | 2023.03.08 |
---|---|
React 컴포넌트의 양식에 검증을 추가하려면 어떻게 해야 합니까? (0) | 2023.03.08 |
순환 참조를 사용하여 JavaScript 개체 문자열 지정(JSON으로 변환) (0) | 2023.02.26 |
Spring Boot에서 Cache-Control 헤더를 정적 리소스에 추가하려면 어떻게 해야 합니까? (0) | 2023.02.26 |
잭슨:열거형 값을 정수로 직렬화 및 직렬화 해제 (0) | 2023.02.26 |