Идея в вашем сценарии с шаблоном публикации подписки:
sym.click((e) => {
pubSub.fireEvent('sym.click', ...yourArguments)
});
Тогда в вашем контроллере вы будете слушать:
pubSub.subscribe('sym.click', myhandlerFunction)
Где myhandlerFunction
- функция, обрабатывающая событие с предоставленными аргументами.
Таким образом, вашему представлению не нужно будет иметь фактическую ссылку на ваш контроллер, и оно будет более разобщенным. Единственная ссылка, необходимая в этом сценарии, - это механизм pub-sub.
Вы можете реализовать этот механизм самостоятельно (множество примеров в Интернете) или использовать такую библиотеку, как pubsubjs , publish-subscribe-js и т. Д.