В Магистраль, если вы хотите поговорить между моделями, вы обычно делаете это через события. Например, если sayHi()
следует сделать в модели Friend
, а не в модели Stranger
, вы должны сделать следующее.Преобразование из базовых привычек в Метеор: события триггеров
внутри Незнакомка
Friend.trigger("callSayHi");
внутри друзей
this.listenTo("callSayHi", function() {
sayHi();
}
Я хотел сделать то же самое в Метеоре, и я думал, что с помощью Session
вар установлены.
внутри Незнакомка
Session.set("callSayHi", true);
внутри друзей
if (Session.get("callSayHi") {
sayHi();
}
// Session.set("callSayHi", false); <-- PROBLEM
Оставим на проблему определения объема (с помощью ReactiveVar
лучше, и т.д.) здесь. Проблема в том, что для более адекватной обработки этой ситуации мне пришлось бы снова установить сеанс var в конец false
, но это вызвало бы бесконечное событие sayHi()
. Я чувствую, что такая ситуация очень распространена. Что такое метод Метеор?
может быть связано: https://forums.meteor.com/t/track-template-state-the-template-instance-scoped-reactive-way-instead-of-using-session-vars/3048
, конечно, это может быть улучшено за счет использования чего-то иного, чем Варс Session. Что-то вроде объекта, который обрабатывает многократные события, хранящиеся в ReactiveVar – Guillaume