Я на самом деле создал веб-приложение с панелью инструментов, но не в JavaScript MVC (что, на мой взгляд, было излишне сложно).
Создайте файл конфигурации, как buttonName : actionName
. Контроллер запускает файл конфигурации и назначает действие событию нажатия кнопки.
Моя панель инструментов была довольно маленькой (десять кнопок или около того, хотя они и менялись), поэтому я держал все действия в одном контроллере, хотя каждое действие представляло собой только пару строк, вызывая отдельный плагин. Если у вас много кнопок, вы можете разделить действия на разные контроллеры.
Затем у вас есть плагин с набором универсального кода, который обрабатывает визуальное представление панели инструментов - тени, цвета фона, управление значками и т. Д. Просто используйте addClass / removeClass и стилизуйте различные состояния кнопок с помощью CSS. Для HTML я сделал каждую кнопку тэгом '', поэтому она изящно деградировала.
Подпанели - это просто дополнительные функции на уровне представления.