Я читал об одном событии, проходящем в Angularjs, и я не уверен, что использование $ broadcast - хорошая идея.
Блоги как этот one защитник привыкает к $, даже если он «чувствует себя излишним».
Мое замешательство заключается в том, что реализация использует сквозной проход по глубине и ищет подписчиков, что делает скорость ваших событий зависимой от вашей древовидной структуры. Вот код от углового в:
// Insanity Warning: scope depth-first traversal
// yes, this code is a bit crazy, but it works and we have tests to prove it!
// this piece should be kept in sync with the traversal in $digest
if (!(next = (current.$$childHead || (current !== target && current.$$nextSibling)))) {
while(current !== target && !(next = current.$$nextSibling)) {
current = current.$parent;
}
}
Кроме того, кажется, что вы могли бы взломать инъекции зависимостей, используя эти методы.
Альтернатива - это просто служба, которая кэширует типы событий и обратные вызовы и вызывает их напрямую. Это требует, чтобы вы очищали подписки, чтобы избежать утечек.
Вопрос мой, есть ли что-то, что мне не хватает в мотивации парадигмы $ broadcast/$? Или есть ли какая-либо польза от использования более традиционного pubsub?
Сообщите мне, если я не буду достаточно ясным с моим вопросом и благодарю за ваше время.
Это прекрасный вопрос, спасибо за вопрос его. – SimplGy