【发布时间】:2017-08-14 11:55:30
【问题描述】:
我对 RxJS 没有太多经验,但我想知道是否有办法订阅对象属性更改? 我正在使用 RxJS 5。我使用 BehaviorSubject 将新值推送给订阅者。主题包含定义一些应用程序设置的对象。
所以,我想做的是,我希望应用程序组件在特定属性更改时订阅并获取新值。 或者,我希望 observable 为每个订阅者生成对象的副本 - 所以他们没有对原始对象的引用。
我的问题类似于this one。
提供应用程序设置的服务:
app.factory('settingsProvider', ['$rootScope', function ($rootScope) {
let subject = new Rx.BehaviorSubject();
let updateSettings = function (obj) {
subject.next(_.merge({}, subject.getValue(), obj));
};
return {
updateSettings: updateSettings,
getObservable: function () {
return subject.asObservable();
}
};
}]);
在某些指令中,我想订阅对某些属性的更改。 我目前有这个:
let settings = {};
let settingsSubscription = settingsProvider.getObservable().subscribe(x => settings = x);
【问题讨论】:
-
请发布您的代码
标签: javascript angularjs rxjs