尝试建立一些东西,但卡住了,错过了这里的任何错误。我想跟踪按钮点击,但从 #zip
输入中获取值,所以这就是我选择 mapTo
的原因。当我删除 mapTo
时,我可以跟踪点击并更改我在订阅函数中的语句,以使用 #zip
输入的内容更新结果 div 文本(就像我在做的那样在 mapTo
) 中,这让我感到困惑,因为我认为这表明语法没问题。
Rx.Observable.fromEvent(document.getElementById('btn'),'click')
.mapTo($('#zip').val())
.subscribe(function(zipCode){
$('#result').text(zipCode);
});
最佳答案
如果我明白你想做什么,你正在尝试用 $('#zip')
的当前值更新 $('#result')
在事件发生时。
运算符 mapTo()
将单个值作为参数。然后使用此值代替来自其来源的每个值。实际上,这意味着 .mapTo($('#zip').val())
在您创建 Observable 链时被初始化仅一次(甚至在你订阅它)。
如果您希望它始终是实际值,您将需要一些将回调作为参数的运算符。例如只是 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
关于javascript - 我的 mapTo 语句有什么问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41006606/