培根与 Twitter 的 Flight 兼容吗?我看到了这个谈话,它们显然是一起使用的(https://www.youtube.com/watch?v=D0N1NdE-9u0),但无法得到一个最小的例子来工作。
这是我的飞行组件,带有传统事件处理以及 Bacon 的事件流。后者只是记录undefined
,data.a
事实证明传递给注册函数onValue
的实际上是事件对象(e
在传统的处理函数中命名),无法访问数据对象。
define(function (require) {
'use strict';
var c = require('flight/lib/component'),
$ = require('jquery'),
B = require('bacon');
$.fn.asEventStream = B.$.asEventStream;
return c(f);
function f() {
this.after('initialize', function () {
// traditional handler
this.on('dummyData', function (e, data) {
console.log('jquery: ' + data.a);
});
// Bacon handler
this.$node.asEventStream('dummyData').onValue(function (data) {
console.log('bacon: ' + data.a);
});
// emit data object
this.trigger('dummyData', { a: 'b' });
});
}
});