我是Bacon.js的新手,我正在努力弄清楚它是如何工作的。那么,有没有办法使用变量,例如来自URL的散列,就好像它是onVariableChange
事件的EventStream一样。对不起,如果我写的东西很尴尬。
这是我的代码:
var hash = window.location.hash.slice(1, window.location.hash.length);
newdata = hash.asEventStream("change").onValue( function(){**do_something_with_new_hash_value();**
} );
答案 0 :(得分:1)
asEventStream
从jQuery事件创建一个Bacon.js EventStream。所以你只能将它应用于jQuery对象,而不是JavaScript变量。因此,在您的情况下,您可以使用jQuery / HTML5事件hashchange
从其更改中创建EventStream:
$(window).asEventStream('hashchange')
.map(function () { return window.location.hash; });
无法将变量本身转换为EventStream或Property,因为需要有一种方法来通知更改,而正常变量不提供这些更改。但是,您可以使用Bacon.Bus
创建EventStream或Property,只要您在变量发生变化时调用push
。