서비스에서 RxJS 사용
예를 들어 상태를 유지하는 서비스가있는 상황은 어떻습니까? 해당 서비스에 변경 사항을 적용 할 수 있고 페이지의 다른 임의의 구성 요소가 그러한 변경 사항을 어떻게 알 수 있습니까? 요즘이 문제를 해결하는 데 어려움을 겪고 있습니다.
RxJS Extensions for Angular 로 서비스를 빌드하십시오 .
<script src="//unpkg.com/angular/angular.js"></script>
<script src="//unpkg.com/rx/dist/rx.all.js"></script>
<script src="//unpkg.com/rx-angular/dist/rx.angular.js"></script>
var app = angular.module('myApp', ['rx']);
app.factory("DataService", function(rx) {
var subject = new rx.Subject();
var data = "Initial";
return {
set: function set(d){
data = d;
subject.onNext(d);
},
get: function get() {
return data;
},
subscribe: function (o) {
return subject.subscribe(o);
}
};
});
그런 다음 변경 사항을 구독하십시오.
app.controller('displayCtrl', function(DataService) {
var $ctrl = this;
$ctrl.data = DataService.get();
var subscription = DataService.subscribe(function onNext(d) {
$ctrl.data = d;
});
this.$onDestroy = function() {
subscription.dispose();
};
});
고객은로 변경 사항을 구독 할 수 DataService.subscribe
있으며 생산자는로 변경 사항을 푸시 할 수 있습니다 DataService.set
.
PLNKR 의 데모 .