2014-11-03 1 views
2

를 템플릿에 데이터를 전달하기 위해, (데이터가 언제든지 변경할 수 있습니다 통지를) 내가 표시 할 데이터를 반환 할 것이다 : 나는이AngularJS와 : 가장 좋은 방법은 내가 서비스-기능 다음 한

myService.getData(); // Returns an array 

을 다른 컨트롤러/서비스에서도이 데이터가 필요하므로 서비스를 사용하십시오.

이제 가장 좋은 방법은 템플릿에 데이터를 표시하는 것입니다.

예 잘 작동 한

<li ng-repeat="item in myService.getData()"> 
    {{item.name}} 
</li> 

그것을하지만 가장 좋은 방법입니다 : 내가 할 무엇입니까? 나는 또한 다음과 같은 노력

:이 작동하지 않습니다 2

// In my controller: 
$scope.data = myService.getData(); 

// In the template 
<li ng-repeat="item in data" ng-controller="myCtrl"> 
    {{item.name}} 
</li> 

예 (데이터를로드 페이지는 $의 scope.data에 한 번 얻을 수 있습니다 모든 업데이트는 무시됩니다.). 나는 $ watch (myService.getData()를보기 위해)를 사용할 수 있다고 생각한다. 하지만 느린 것 같아요.

당신은 어떻게 생각하십니까? 템플릿 (예 1)에서 서비스를 호출 할 수 있습니까?

대단히 감사합니다! 두 번째 예 (권장)와 같은

+0

은'getData' 방법의 조각은 –

답변

0

사용이 :

// In my controller: 
$scope.service= myService 

// In the template 
<li ng-repeat="item in service.getData()" ng-controller="myCtrl"> 
    {{item.name}} 
</li> 
+0

예, 이것은 내가 사용하고 정확하게 (이미)입니다 도움이 될 것입니다. 이것이 유효한지 확실하지 않거나 다른 접근법을 사용해야합니다. – Tream

+0

가장 좋은 방법입니다. 의심의 여지없이 사용하실 수 있습니다. –

+2

@MukundKumar 이것이 베스트 프랙티스라고 생각하는 이유는 무엇입니까? 'getData'는 AJAX 요청을 만든 다음 다이제스트주기 당 여러 번 실행하게됩니까? – dfsq

관련 문제