Наличие логики в представлении действительно отрицательно сказывается на цели паттерна MVP.Я рекомендую проверить deftjs , так как это делает запросы компонентов более чистыми.Поскольку большинство действий пользователя выполняется с помощью элементов управления, например кнопки, я даю им действие и ищу это уникальное действие, например, вход в систему.
control: {
submitButton: {
selector: 'button[action=login]',
listeners: {'click': 'login'}
}
}
Проблема с вышесказанным заключается в том, что он все еще привязывает контроллер к компоненту представления, кнопке, поскольку он ссылается на его тип.Вы можете заменить это на id, но я тоже не фанат этого.Я считаю, что лучший способ получить эту функциональность - это сделать так, чтобы у deftjs была более общая модель событий, которую они, вероятно, имеют в дорожной карте, поскольку они основывают ее на таких проектах, как RobotLegs.Если никто не предоставит эту функцию в ближайшее время, я, вероятно, попробую.
И последнее, но не менее важное, если вам нужно добавить логику в компонент, вероятно, лучше всего расширить этот компонент и протестировать его отдельно от вашего.просмотры.