Уже нашел вопросы- how should I keep a running total of several values with bacon.js?Использование combineAsArray на изменение набора потоков в BaconJS
Я уже нашел выше вопрос, который имеет дело со статическим набором свойств. Тем не менее, меня интересует вариант, в котором набор свойств является динамическим.
Мой конкретный случай состоит в том, что у меня есть набор вещей, которые могут быть доступны для редактирования, и образуют видимое свойство. Из них я объединяю свойства с combineWith
, чтобы получить общую стоимость ВСЕХ событий. (Код в конце)
Прямо сейчас у меня есть свойства, подходящие для статического набора событий с использованием jQuery для получения правильных значений, но идея состоит в том, что пользователь может добавлять (или удалять) событие произвольно, и рассчитанная сумма будет соответствующим образом обновлена.
У меня есть смутное подозрение, что инструмент для работы является combineAsArray
и некоторого умного использование события прослушивания на общий предке для всех моих потоков, или, возможно, какое-то Bacon.Bus
(динамически подключить потоки в него?), Но Я действительно спиннинг моих колес теперь ...
в (Псевдо) Коде
<table>
<tr>
<td><input id="thing1" value="40"></input></td>
</tr>
<tr>
<td><input id="thing2" value="40"></input></td>
</tr>
</table>
$(function() {
stream1 = $("#input1").asEventStream("change blur keyup").toProperty();
stream2 = $("#input2").asEventStream("change blur keyup").toProperty();
totalMonthlyCost = Bacon.combineWith(
sumAll,
[stream1, stream2]
);
});
наткнулся на это сообщение в блоге после публикации. Приятно знать, что я был на правильном пути! – ABMagil