2014-09-14 3 views
0

Является ли Бэкон совместимым с рейсом Twitter? Я видел этот разговор, где они, видимо, используются вместе (https://www.youtube.com/watch?v=D0N1NdE-9u0), но не смогли получить минимальный пример для работы.Использование Bacon.js с FlightJS

Это мой компонент полета с традиционной обработкой событий наряду с потоком событий Бэкона. Последний только регистрирует 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' }); 
    }); 
    } 
}); 

ответ

4

Вы можете передать необязательный аргумент функции asEventStream, которые можно использовать для отображения полезной нагрузки событий:

this.$node.asEventStream('dummyData', function(e, data) { 
    return data; 
    }).onValue(function (data) { 
    console.log('bacon: ' + data.a); 
    }); 

Посмотрите на примеры здесь: https://github.com/baconjs/bacon.js#%24-aseventstream

+0

совершенное, спасибо! – estolua

Смежные вопросы