RxJS观察一个对象

RxJS观察一个对象,rxjs,Rxjs,我是RxJS新手,所以我为这个新手问题道歉 我有一个本地javascript对象定义为: model.user={ 名字:“约翰”, 姓:“史密斯” }您可以将整个状态存储为可观察状态,而不是使用对象 下面是示例代码(类似于人们在redux中的操作): var fnameInput=document.getElementById('fname'); var lnameInput=document.getElementById('lname'); var jsonPre=document.ge

我是RxJS新手,所以我为这个新手问题道歉

我有一个本地javascript对象定义为:

model.user={
名字:“约翰”,
姓:“史密斯”

}
您可以将整个状态存储为可观察状态,而不是使用对象

下面是示例代码(类似于人们在redux中的操作):

var fnameInput=document.getElementById('fname');
var lnameInput=document.getElementById('lname');
var jsonPre=document.getElementById('json');
var onFirstName$=Rx.Observable.fromEvent(fnameInput,'input');
var onLastName$=Rx.Observable.fromEvent(lnameInput,'input');
变量初始状态={
名字:'',
姓氏:“”,
};
var状态$=Rx.可观测
.合并(
onFirstName$
.map(e=>
state=>Object.assign(
国家,,
{firstName:e.target.value}
)
),
在线名称$
.map(e=>
state=>Object.assign(
国家,,
{lastName:e.target.value}
)
)
)
.扫描(
(state,makeNew)=>makeNew(state),
初始状态
)
.startWith(初始状态);
陈述$
.订阅(状态=>{
jsonPre.innerHTML=JSON.stringify(state,null,2);
});


这就是您要找的吗?-谢谢你@OlesSavluk。您知道这是否适用于嵌套属性吗?不确定,在引擎盖下它使用
对象。请观察
。请记住,大多数浏览器都不支持它。谢谢,我会看一看。@OlesSavluk。你是对的,这并不适用于所有平台。Object.observe()不再可用。搜索还在继续…我有一个问题,你从哪里得到变量“state”?在这两种情况下使用Object.assign()更新的对象Observables@Borjante它由
scan
方法处理,从
initialValue
开始,然后通过对旧状态应用
makeNew
函数来创建下一个状态。看-