일부 팩토리 메서드를 사용하여 두 컨트롤러간에 데이터를 공유하고 싶습니다. 컨트롤러 Ctrl1은 HTTP 요청이 전송되고 서버의 데이터가 스트리밍 방식으로 수신되는 첫 번째 DIV 태그에 속합니다. 그리고 다른 DIV 태그에서 첫 번째 DIV 태그가 업데이트되면서 계속 업데이트되는 목록 (ng-repeat)으로 해당 결과를 표시하려고합니다. 또한 첫 번째 DIV 태그가 첫 번째로 도착하자마자 두 번째 DIV 태그가 결과를 표시하기 시작합니다 응답 및 첫 번째 DIV 사라집니다). 컨트롤러간에 데이터를 한 번 전달하는 방법을 알고 있지만 (예 : ng-click = "pass()"),이를 달성하는 방법을 모르겠습니다. 나는 $ rootScope를 사용하지 않는 답을 찾고있다.업데이트를 계속하는 두 컨트롤러간에 데이터 공유
0
A
답변
0
데이터를 포함하는 서비스를 만든 다음 각 컨트롤러에 서비스를 주입해야합니다. 예를 들어
는 'foo는'문자열 '바'를 같게하는 하나 개의 속성을 가진 '는 myService'서비스를 정의 할 수 있습니다 :
angular.module('myModule').service('myService', function() {
this.foo = 'bar';
});
우리는 지금 이렇게 같이 컨트롤러에서 이것을 사용할 수 있습니다
:
angular.module('myModule').controller('MyCtrl', function($scope, myService) {
$scope.myService = myService;
});
이제 템플릿에서 {{myService.foo}}
또는 ng-model="myService.foo"
으로 액세스 할 수 있습니다.
두 번째 컨트롤러에서 비슷한 방법으로 사용할 수 있습니다. 두 컨트롤러 중 하나에서 'foo'속성을 업데이트하면 컨트롤러간에 변경 사항이 유지됩니다. 이것은 각도의 서비스가 싱글 톤이기 때문입니다. 이런 식으로 서비스를 정의함으로써 당신이하고있는 일은 당신이 원할 때마다 주입 할 수있는 싱글 톤 'myService'를 만드는 것이며, 항상 한 번만 인스턴스화됩니다.
컨트롤러 코드 내의 변경 사항을 감시해야하는 경우 myService.foo에서 $ scope. $ watch()를 평소와 같이 사용할 수 있습니다.
관련 문제
- 1. Angularjs - 컨트롤러간에 데이터 공유
- 2. AngularJS의 컨트롤러간에 데이터 공유
- 3. 컨트롤러간에 데이터 공유 AngularJS
- 4. AngularJS, 컨트롤러간에 데이터 공유
- 5. Symfony 2 컨트롤러간에 데이터 공유
- 6. 여러보기 컨트롤러간에 코드 공유
- 7. 여러 요청을하지 않고 컨트롤러간에 비동기 데이터 공유
- 8. JAVAFX - 컨트롤러간에 객체 공유
- 9. 각도 지시문, 서비스 및 컨트롤러간에 데이터 공유
- 10. Angularjs : 컨트롤러간에 관찰 가능한 데이터 공유
- 11. 각도 : 컨트롤러간에 비동기 서비스 데이터 공유
- 12. Angular.js의 컨트롤러간에 리소스 공유
- 13. Angularjs 컨트롤러간에 방법을 공유
- 14. 보기 컨트롤러간에 루틴 공유
- 15. webapi와 컨트롤러간에 데이터를 공유 하시겠습니까?
- 16. Angularjs - 두 컨트롤러간에 API 데이터 전달
- 17. 스토리 보드를 사용하여 두 컨트롤러간에 데이터 전달
- 18. 보기 컨트롤러간에 데이터 전파
- 19. AngularJS 변수가 다른 컨트롤러에 설정되어있을 때 컨트롤러간에 데이터 공유
- 20. 컨트롤러간에 데이터 전송
- 21. 두 컨트롤러간에 개체 전달
- 22. 컨트롤러간에 임시 데이터 전달
- 23. 뷰 컨트롤러간에 데이터 전달
- 24. 시작시보기 컨트롤러간에 데이터 전달
- 25. IOS의보기 컨트롤러간에 데이터 전달
- 26. 모듈을 통해 팩토리 및 컨트롤러간에 AngularJS 공유 데이터
- 27. angularjs 컨트롤러간에 데이터 공유 (서비스 접근) - watcher는 호출되지 않습니다.
- 28. 두 개의 서로 다른 컨트롤러간에 통신
- 29. 다른 모듈의 컨트롤러간에 데이터 전달
- 30. 컨트롤러간에 공유 된 개체를 가져올 수 없습니다.
등 : https://www.google.com/search?q=sharing+data+angular&oq=angularjs+sharing+data&sourceid=chrome&ie=UTF-8#q=angularjs+sharing+data+ – Cherniv
나는 그것을 봤습니다. 하지만 동적 데이터 공유를 위해 찾은 대답은 $ rootScope를 사용합니다. 나는 가능한 한 다른 방법으로 그것을하는 대답을 찾고있다. 감사. – Sangram
컨트롤러간에 데이터를 공유하기 위해 $ rootScope를 사용하고 싶지 않은 이유는 무엇입니까? –