尝试构建一些东西但是卡住了并且错过了这里的错误。我想跟踪按钮点击次数,但是从#zip
输入中获取值,这就是我选择mapTo
的原因。当我删除mapTo
时,我可以跟踪点击并更改我在subscribe函数中的语句,以使用#zip
输入的内容更新结果div文本(就像我在mapTo
中所做的那样)这让我感到困惑,因为我觉得这表明语法还可以。
Rx.Observable.fromEvent(document.getElementById('btn'),'click')
.mapTo($('#zip').val())
.subscribe(function(zipCode){
$('#result').text(zipCode);
});
答案 0 :(得分:2)
如果我了解您要执行的操作,则会在事件发生时尝试使用当前值$('#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