2017-01-14 3 views
2

웹 응용 프로그램에서 특정 JSON은 여러 페이지에 자주 사용됩니다. 예컨대위한 각도 1.x : 특정 시나리오 컨트롤러/서비스 사용시기

{ 
    "employees":[ 
     {"firstName":"John", "lastName":"Doe"}, 
     {"firstName":"Anna", "lastName":"Smith"}, 
     {"firstName":"Peter", "lastName":"Jones"} 
    ] 
} 

그래서 컨트롤러 또는 서비스의 일부로 간주되어야 firstName을() 또는 과 lastName() 모든 직원에 대한을 받고?

서비스은 앱에서 자주 사용되고 컨트롤러에서이 데이터를 가져 오는 것으로 생각할 수 있으며 더 얇아 질 것입니다.

이 올바른 접근 방식입니까?

답변

1

당신은 다음과 같은 옵션을 사용할 수 있습니다

  1. 는 REST/HTTP는 당신이 특정 컨트롤러에서이 데이터를 필요로 할 때마다 호출합니다. 따라서 데이터를 가져 오기 위해 HTTP 끝점을 호출하는 EmployeesService를 만듭니다.
  2. 데이터를 한 번 호출하고 서비스에 저장하십시오. 그런 다음 데이터가 필요한 모든 곳으로 서비스를 주입하십시오.
  3. 앱이 시작될 때 HTTP 끝점에서 데이터를 가져 와서 브라우저의 로컬 저장소 또는 $ rootScope, 안에 저장하여 모든 곳에서 액세스 할 수 있도록하십시오.

    • 앱이 얼마나 큰/데이터 양이를 공유 할 수 : 결국

, 그것은에 따라 달라집니다?

  • 얼마나 자주이 데이터를 업데이트합니까?
  • 이 데이터에 액세스해야하는보기는 무엇입니까?
  • 예, 서비스가 있으면 안전한 측면에 있습니다. 그런 다음 컨트롤러에 주입하고 거기에서 사용하십시오. 데이터가 서비스에 들어가는 방법과 빈도 : 결정.

    +0

    현재 작은 끝점에서 데이터를 반환하기 위해 서비스를 사용하고 있지만 여러 컨트롤러가 이러한 메서드를 반복해서 정의하므로이 메서드를 서비스 계층에 포함하여 컨트롤러간에 공유 할 수 있다고 생각했습니다. 불행히도 레거시 지원으로 인해 'localStorage'를 사용할 수 없습니다. 이 데이터는 큰 데이터이며 컨트롤러의 모든 로직을 포함하여 무거워집니다. – Robin