尝试建立一些东西,但陷入困境并丢失这里的任何错误。我想跟踪按钮的点击,但是从#zip
输入中获取值,所以这就是为什么我选择mapTo
的原因。当我删除mapTo
时,我可以跟踪单击并更改订阅函数中的语句,以使用#zip
输入的内容更新结果div文本(与我在mapTo
中所做的完全一样),这使我感到困惑,因为我认为表示语法还可以。
Rx.Observable.fromEvent(document.getElementById('btn'),'click')
.mapTo($('#zip').val())
.subscribe(function(zipCode){
$('#result').text(zipCode);
});
jsbin
最佳答案
如果我了解您要执行的操作,则您尝试在事件发生时使用当前值$('#result')
更新$('#zip')
。
运算符mapTo()
以单个值作为参数。然后使用此值,而不是使用来自其来源的每个值。实际上,这意味着在创建Observable链时(甚至在订阅之前),仅将.mapTo($('#zip').val())
初始化一次。
如果希望它始终是实际值,则需要一些将回调作为参数的运算符。例如只是map()
:
Rx.Observable.fromEvent(document.getElementById('btn'), 'click')
.map(function(val) {
return $('#zip').val();
})
.subscribe(function(zipCode){
$('#result').text(zipCode);
});
您更新的演示:http://jsbin.com/qepalo/1/edit?html,js,console,output