Трехсторонняя привязка данных с RactiveJS и Firebase

Мне действительно интересно, есть ли кто-нибудь, кто сделал снимок в Firebase через RactiveJS.

Что меня смущает, так это то, что Ractive использует события модификатора массива для запуска некоторых изменений DOM.

Пока все хорошо, ractive.unshift('arr',1) будет означать обновление следующего:

{{ # arr }} 
     {{ . }} 
{{ / }}

Но .. поскольку Firebase использует Objects вместо Arrays, как я могу вытащить трехстороннюю привязку данных с Ractive? Мне очень нравится простота использования RactiveJS предложений, и я бы не хотел уезжать только из-за этого.

Любые идеи ?

Большое спасибо !


person Eduard    schedule 18.03.2016    source источник
comment
Не могли бы вы дополнить вопрос небольшим примером? Непонятно, почему это может быть проблемой с доступными set / update / computeds.   -  person 7zark7    schedule 22.03.2016
comment
Нет проблем, я просто пытаюсь спросить, как у вас это получается? Я пытаюсь найти способ заставить Ractive работать с Firebase (но я не могу обдумать это, поскольку Firebase использует объекты, а Ractive слушает изменения в массивах). У вас есть какой-нибудь пример, в котором вы можете заставить Ractive прослушивать изменения из Firebase?   -  person Eduard    schedule 23.03.2016
comment
Ractive data не обязательно должен быть массивом - у меня нет доступного примера Firebase, но вкратце вы будете использовать Firebase как обычно, а когда вы получите событие изменения в Firebase, вы можете: Ractive.set (.. .) новые значения на основе данных или Ractive.update (...) в дополнение к вычисленным значениям на основе данных Firebase.   -  person 7zark7    schedule 23.03.2016
comment
Думаю, я попробую таким образом. Вернусь, когда найду что-то, что могут использовать другие.   -  person Eduard    schedule 23.03.2016


Ответы (1)


В вашем вопросе не так много вопросов, но я считаю, что вы пытаетесь установить данные. ractive.set должно быть всем, что вам для этого нужно:

ractive.set('some.object.keypath', obj);

В этом нет ничего особенного (хотя есть несколько скрытых вещей). Это синоним действия:

some.object.keypath = obj;

Кроме того, если вы хотите абстрагироваться от того факта, что используете Firebase, вы можете создать адаптер. . По сути, это просто уровень абстракции, переводящий в сторонний источник данных и из него. Типичный пример - адаптация моделей Backbone к Ractive.

person Joseph    schedule 01.04.2016