브라우저 사이드 데이터베이스에 데이터를로드하는 팩토리가 있습니다. 컨트롤러에서 데이터를 성공적으로로드하는 dataFactory.LoadData()를 호출합니다. 그래도 진행률 표시 줄을 추가해야합니다. 진행률 표시 줄의 값을 변경할 수있는 지시문이 있지만 현장을 나중에 업데이트 할 수 있도록 범위를 업데이트 할 수있는 공장이 필요합니다.이 필드는 수행 할 수 없거나 공장에서 업데이트 한 지시문이 필요합니다. 지금까지 본 것에서, 공장은 일반적으로 지시문에 전달되고 다른 방향으로는 전달되지 않습니다. 컨트롤러 뷰를 업데이트하기 위해 공장의로드 작업을 어떻게 얻을 수 있습니까? 프로세스가 다음과 같아야합니다. 1) 공장에서 클라이언트 측 데이터베이스를로드합니다. 2) 공장 모듈이 데이터베이스로로드되는 동안 뷰에서 진행률 막대가 변경됩니다.Clientside 데이터베이스가있는 공장 및 지시문
답변
이것은 $ scope에서 angular 이벤트 프레임 워크를 통해 확인할 수 있습니다.
귀하의 공장은 $ 범위에 대한 참조를해야합니다. 적절한 시간에 공장은 $ emit을 사용하여 지시문이 듣고있는 범위까지 이벤트를 보냅니다. 그런 다음 지시문이 진행률 막대를 업데이트합니다. $ emit의 args 매개 변수를 사용하여 이벤트와 함께 정보를 보낼 수 있습니다.
공장 :
factoryMethod() {
$scope.$emit('my.special.event', args);
}
지침 :
$scope.$on('my.special.event', function(event, args) {
//use the event and args to update the progess bar
}
사용할 수
공장에서 $ scope 만 $ 범위를 받아 들일 수 없다는 것을 읽었습니다. 불행히도 $ rootscope를 성공적으로 통과 할 수 없습니다. 모범이 있습니까? – Keith
왜 내가 인수로 범위를 전달할 수 없었는지 모르겠다. 그러나 그것은 위대한 관행이 아닐 수도 있습니다. 약속을 들여다 볼 수도있는 것 같습니다. 여기에 더 많은 정보가 있습니다 : http://stackoverflow.com/questions/22159189/angular-js-in-factory-can-i-access-scope –
약속은 다음 자식 약속을 향해 스택 아래로 .then() 약속 결과를 따르습니까? ? 나는 테이블로드 당 체인 된 약속을 가지고 있지만 어떻게 작동합니까? 각 .then(). then()은 컨트롤러가 끝날 때까지 약속을 컨트롤러 또는 다음 then() 문으로 돌려 주겠습니까? 나는 다음 then() 문으로 넘어갈 것이라고 생각한다. 이렇게하면 진행 표시 줄을 업데이트 할 수 없습니다. – Keith
- 1. ClientSide Validation
- 2. 재귀 및 공장 문제
- 3. 의존성 주입 및 공장
- 4. AngularJS와 : 공장 및 컨트롤러
- 5. IOC의 (Ninject에) 및 공장
- 6. SLF4J 및 로거 공장
- 7. 공장 및 제네릭
- 8. 비웃음 공장 및 방법
- 9. 이온, 공장 및 서비스
- 10. Clientside Heart Vote
- 11. Yii : FileField 및 TextField의 ClientSide 유효성 검사
- 12. 파일 쓰기 및 다운로드 clientside crossbrowser
- 13. 오프라인지도 및 데이터베이스가있는 Android 앱
- 14. Simple.Data 및 SQLServer 데이터베이스가있는 MiniProfiler
- 15. MultiSubmitButton Clientside 유효성 확인
- 16. 데이터베이스가있는 openam
- 17. 공장 소녀 중첩 공장
- 18. EntityFramework를 사용하는 ClientSide 마이그레이션
- 19. ASP.NET MVC ClientSide 이벤트
- 20. 지시문 콜백 및 범위
- 21. 각주 반복 및 지시문
- 22. 각도 지시문 및 범위
- 23. AngularJS 지시문 및 모델
- 24. 레일 및 AngularJS 지시문
- 25. SignalR 및 AngularJS 지시문
- 26. AngularJs의 스코프 및 지시문
- 27. 지시문, 서비스 및 반복 -
- 28. 공장
- 29. AngularJS의 지시문 (및 다른 부분) 간의 통신
- 30. JBoss의 공장 주입 및 methodCall을
[약속/연기 대상] (https://docs.angularjs.org/api/ng/service/$q) 알림 메서드를 구현하십시오 –