2016-06-17 5 views
0

다른 변수에 5000 개의 배열 값이있는 각 응용 프로그램이 있습니다. 전체 프로젝트에서 컨트롤러 5 개 중 3 개 컨트롤러에 동일한 값이 필요합니다. 이제는 이들을 통해 데이터를 유지하기 위해 공장을 사용하고 있습니다. $ rootScope가 더 효율적인 방법인지 아니면 현재의 방법이 더 낫다.데이터를 보관하는 가장 좋은 방법은 컨트롤러 전체에서 각 변수의 팩토리 변수 또는 RootScope 변수입니다.

+1

당신은 또한 그들이 로컬 스토리지에 저장하거나 그들에게 데이터 소스에서 각 시간을 가져올 수 -

질문을 참조하십시오. 이 질문은 독점적 인 정식 답을 얻기에는 너무 광범위합니다 – Phil

+0

http://stackoverflow.com/questions/32761540/whyusing-rootscope-with-functions-is-not-recommended 여기에서 해결할 링크 해결책을 살펴 보시기 바랍니다. 로컬 저장소 및 세션 저장소도 사용하지 마십시오. –

답변

1

$ rootScope는 모든 범위의 부모이므로 거기에 노출 된 값은 모든 템플릿과 컨트롤러에서 볼 수 있습니다. $ rootScope를 사용하면 간단히 컨트롤러에 삽입하고이 범위에서 값을 변경할 수 있으므로 매우 쉽습니다. 편리 할 수도 있지만 전역 변수의 모든 문제가 있습니다.

서비스는 컨트롤러에 삽입하여 컨트롤러의 범위에 해당 값을 노출 할 수있는 단일 기능입니다. 싱글 톤이되는 서비스는 여전히 '글로벌'이지만 이러한 서비스가 사용 및 노출되는 위치를 훨씬 효과적으로 제어 할 수 있습니다. Global variables in AngularJS

0

$ rootscope는 전혀 좋은 옵션이 아닙니다. 데이터 공유를 위해 공장을 사용하는 것이 항상 바람직합니다.